golang中讀取檔案的幾種方式

2022-10-09 03:09:11 字數 1938 閱讀 3615

golang中的檔案的讀取很多是做配置檔案使用,還有是讀取影象作為file類,儲存至檔案系統中,下面分別說明

type globalconf struct 

//配置檔案中字母要小寫,結構體屬性首字母要大寫

type dbconf struct

var config globalconf

配置檔案名稱:config.yaml
db: # 資料庫配置(mysql),mysql服務部署 見部署手冊,或基於tdsql/cdb搭建

username: "root" # 資料庫使用者名稱

password: "*******" # 資料庫密碼

host: "127.0.0.1:3306" # 資料庫連線位址

logmode: 4

maxopenconn: 50 # 連線池最大連線數

maxidleconn: 2 # 最大空閒連線

maxlifetime: 30 # 空閒連線的超時時間

配置檔案路徑:conf/config.yaml

依賴:使用init函式進行封裝,依賴包為: "gopkg.in/yaml.v2"

1.讀取路徑,以專案的根目錄為參考:根目錄下的conf路徑下的config.yaml檔案,讀取路徑就為:conf/config.yaml

//從配置檔案中讀取所有的配置資訊

func init()

}func getyamlconfig() error

err = yaml.unmarshal(file, &config)

if err != nil

log.logger.infof("config is %v", config)

return nil

}

配置檔案名稱:config.json

配置檔案路徑:conf/config.json

}

程式實現:

func getjsonconfig() error 

log.logger.infof("config is %v", config)

return nil

}

配置檔案名稱:config.ini

所在路徑:conf/config.ini

檔案內容

[db]

username="root" # 資料庫使用者名稱

password="******" # 資料庫密碼

host="127.0.0.1:3306" # 資料庫連線位址

logmode= 4

maxopenconn= 50 # 連線池最大連線數

maxidleconn= 2 # 最大空閒連線

maxlifetime= 30 # 空閒連線的超時時間

引入的包為:github.com/go-ini/ini

**實現:

err := ini.mapto(&config, "conf/config.ini") //配置使用指標的方式接收

if err != nil

log.logger.infof("ini read config is %v", config)

return nil

}

golang中檔案的操作使用系統自帶的工具

file, err := os.open(localpic)

if err != nil

defer file.close()

fd, err := os.openfile(localpath, os.o_wronly|os.o_create|os.o_trunc, 0660)

if err != nil

golang讀取檔案

提前建乙個檔案文字helloworld.txt,現在可以在go程式中使用絕對檔案路徑將helloworld整個檔案讀取。中使用到 ioutol包中的 readfile函式。在go語言標準庫文件中它的用法是 func readfile filename string byte,error 說明 rea...

golang 讀取檔案

使用go語言讀取檔案的各種方式整理。整個檔案讀到記憶體,適用於檔案較小的情況 func readallintomemory filename string content byte,err error defer fp.close fileinfo,err fp.stat if err nil bu...

讀取properties配置檔案的幾種方法

方法一 properties props new properties props.load bugfactory.class.getresourceasstream xx.properties string name props.getpropery keyname 此時xx.properties...