博主前兩天在寫一個小的go語言項(xiàng)目,想找一個讀取ini格式配置和的三方庫,在網(wǎng)上找了一圈感覺都不是很好用, 使用起來非常的奇怪,于是自己寫了一版,還有兩個接口沒有實(shí)現(xiàn),在項(xiàng)目中修改或刪除配置項(xiàng)后更新到文件中,等待后續(xù)有時間了再寫,希望用的朋友感覺不錯點(diǎn)個贊
github 地址
使用iniconf更簡單的讀取go的ini配置文件以及根據(jù)特定格式的各種配置文件。
go get github.com/clod-moon/goconf
ini配置文件格式樣列
[database] username = root password = password hostname = localhost [admin] username = root password = password [nihao] username = root password = password
初始化
conf := goini.InitConfig("./conf/conf.ini") //iniconf.InitConfig(filepath) 其中filepath是你ini 配置文件的所在位置
獲取單個配置信息
username := conf.GetValue("database", "username") //database是你的[section],username是你要獲取值的key名稱 fmt.Println(username) //root
刪除一個配置信息
conf.DeleteValue("database", "username") //username 是你刪除的key username = conf.GetValue("database", "username") if len(username) == 0 { fmt.Println("username is not exists") //this stdout username is not exists }
添加一個配置信息
conf.SetValue("database", "username", "chun") username = conf.GetValue("database", "username") fmt.Println(username) //chun 添加配置信息如果存在[section]則添加或者修改對應(yīng)的值,如果不存在則添加section
獲取所有配置信息
conf.GetAllSetion() //返回map[string]map[string]string的格式 即setion=>key->value
使用iniconf更簡單的讀取go的ini配置文件以及根據(jù)特定格式的各種配置文件。
func main() { conf := iniconf.InitConfig("./config.ini") for key,value :=range conf.Conflist { fmt.Println(key) for k,v := range value{ fmt.Println(k,":",v) } } fmt.Println(conf.GetValue("esinfo","addr")) conf.SetValue("esinfo","addr","127.100.100.100") fmt.Println(conf.GetValue("esinfo","addr")) }
output
esinfo addr : 127.0.0.1 port : 9200 index : case type : case 127.0.0.1 127.100.100.100 Process finished with exit code 0
補(bǔ)充:GoLang 使用goconfig讀取配置文件(.ini、.json、.yaml)
[RabbitMQ] MQUrl = amqp://trkj:trkj@192.168.5.62:5672/test Exchange = EX.WALLDATA ExchangeType = fanout RoutingKey = RK.WALLDATA [Base] messageFrequency = 5
package main import ( "fmt" "github.com/hyahm/goconfig" ) type RabbitMQ struct { MQUrl string Exchange string ExchangeType string RoutingKey string } type BaseConfig struct { MsgFrequency int64 // 消息發(fā)送頻率 RabbitMQ // MQ信息 } func ReadBaseConfig(bconfig *BaseConfig, confFile string) { goconfig.InitConf(confFile, goconfig.INI) bconfig.MsgFrequency = goconfig.ReadInt64("Base.messageFrequency", 3) bconfig.RabbitMQ.MQUrl = goconfig.ReadString("RabbitMQ.MQUrl", "") bconfig.RabbitMQ.Exchange = goconfig.ReadString("RabbitMQ.Exchange", "") bconfig.RabbitMQ.ExchangeType = goconfig.ReadString("RabbitMQ.ExchangeType", "") bconfig.RabbitMQ.RoutingKey = goconfig.ReadString("RabbitMQ.RoutingKey", "") } func main() { baseConfig := BaseConfig{} ReadBaseConfig(baseConfig, "./Config.ini") fmt.Printf("mq.MQUrl = %s \t mq.Exchange = %s \t mq.ExchangeType = %s \t mq.RoutingKey = %s\n", baseConfig.RabbitMQ.MQUrl, baseConfig.RabbitMQ.Exchange, baseConfig.RabbitMQ.ExchangeType, baseConfig.RabbitMQ.RoutingKey) fmt.Printf("msgFrequency = %d\n", baseConfig.MsgFrequency) }
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
標(biāo)簽:蘭州 汕頭 吐魯番 銅川 欽州 梅河口 重慶 雞西
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《GO語言ini配置文件的讀取的操作》,本文關(guān)鍵詞 語言,ini,配置文件,的,讀,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。