1、介绍
1.1 什么是go-ini
go-ini超赞的Go语言INI文件操作。地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库。
官方网站:ini.unknwon.io/
GitHub地址:github.com/go-ini/ini
1.2 功能特性
- 支持覆盖加载多个数据源(file,
[]byte,io.Readerandio.ReadCloser) - 支持递归读取键值
- 支持读取父子分区
- 支持读取自增键名
- 支持读取多行的键值
- 支持大量辅助方法
- 支持在读取时直接转换为 Go 语言类型
- 支持读取和 写入 分区和键的注释
- 轻松操作分区、键值和注释
- 在保存文件时分区和键值会保持原有的顺序
1.3 下载安装
go get gopkg.in/ini.v1
2、使用
官方使用文档:ini.unknwon.io/docs/intro/…
2.1 在项目中创建配置文件
创建一个配置文件conf/app.ini:
app_name = memorandum
# possible values: DEBUG, INFO, WARNING, ERROR, FATAL
log_level = DEBUG
app_mode = dev
[mysql]
ip = 192.168.5.231
protocol = tcp
port = 13306
user = root
password = password
database = gin
[redis]
ip = 192.168.5.231
port = 6379
password = password
[server]
port = 9000
2.2 配置go-ini读取配置文件
main.go
package main
import (
"fmt"
"gopkg.in/ini.v1"
)
func main() {
cfg, err := ini.Load("conf/app.ini")
if err != nil {
fmt.Printf("Failed to read file %v\n", err)
os.Exit(1)
}
// 典型读取操作
fmt.Println("app name:", cfg.Section("").Key("app_name").String())
fmt.Println("mysql host:", cfg.Section("mysql").Key("ip").String())
fmt.Println("redis port:", cfg.Section("redis").Key("port").String())
}
2.3 go-ini写入配置到文件
main.go
package main
import (
"fmt"
"gopkg.in/ini.v1"
)
func main() {
cfg, err := ini.Load("conf/app.ini")
if err != nil {
fmt.Printf("Failed to read file %v\n", err)
os.Exit(1)
}
// 写入配置到文件
cfg.Section("").Key("app_mode").SetValue("dev")
cfg.Section("server").Key("port").SetValue("9000")
cfg.SaveTo("conf/app.ini")
}