温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

GO语言ini配置文件的读取操作示例分析

发布时间:2021-05-08 11:31:49 来源:亿速云 阅读:188 作者:小新 栏目:开发技术

小编给大家分享一下GO语言ini配置文件的读取操作示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

go适合做什么

go是golang的简称,而golang可以做服务器端开发,且golang很适合做日志处理、数据打包、虚拟机处理、数据库代理等工作。在网络编程方面,它还广泛应用于web应用、API应用等领域。

iniconf

描述

使用iniconf更简单的读取go的ini配置文件以及根据特定格式的各种配置文件。

安装方法

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]则添加或者修改对应的值,如果不存在则添加section

获取所有配置信息

conf.GetAllSetion() //返回map[string]map[string]string的格式 即setion=>key->value

iniconf

About

使用iniconf更简单的读取go的ini配置文件以及根据特定格式的各种配置文件。

example

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

补充:GoLang 使用goconfig读取配置文件(.ini、.json、.yaml)

一、goconfig读取.ini类型配置文件

1、配置文件(config.ini)如下:

[RabbitMQ]
MQUrl        = amqp://trkj:trkj@192.168.5.62:5672/test
Exchange     = EX.WALLDATA
ExchangeType = fanout
RoutingKey   = RK.WALLDATA
 
[Base]
messageFrequency = 5

2、解析配置文件:

package main 
import (
 "fmt"
 "github.com/hyahm/goconfig"
)
 
type RabbitMQ struct {
 MQUrl string
 Exchange string
 ExchangeType string
 RoutingKey string
}
 
type BaseConfig struct {
 MsgFrequency int64 // 消息发送频率
 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)
 
}

以上是“GO语言ini配置文件的读取操作示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

go
AI