1、准备
go使用go-ini模块非常方便,首先安装模块:
go get “github.com/go-ini/ini”
2、读取ini到结构体中
package main
import (
"fmt"
"github.com/go-ini/ini"
)
type Config struct {
Username string
Password string
}
func main() {
// 加载配置文件
cfg, err := ini.Load("config.ini")
if err != nil {
fmt.Printf("Failed to read file: %v", err)
return
}
// 映射INI内容到结构体
var config Config
err = cfg.Section("user").MapTo(&config)
if err != nil {
fmt.Printf("Failed to map values: %v", err)
return
}
// 打印出来看看
fmt.Println("Username:", config.Username)
fmt.Println("Password:", config.Password)
}
3、写结构体到ini文件
package main
import (
"fmt"
"github.com/go-ini/ini"
)
type Config struct {
Username string
Password string
}
func main() {
// 给结构体赋值
config := Config{
Username: "jane",
Password: "secret",
}
cfg := ini.Empty()
// 结构体格式化到INI文件中
err = cfg.Section("user").ReflectFrom(&config)
if err != nil {
fmt.Printf("Failed to reflect values: %v", err)
return
}
// 写入INI
err = cfg.SaveTo("config.ini")
if err != nil {
fmt.Printf("Failed to save file: %v", err)
return
}
}
生成配置文件如下:
[user]
Username = jane
Password = secret