/iniConfig

用go实现一个解析ini配置文件

Primary LanguageGo

Usage

创建一个.ini结尾的文件,如config.ini,内容如下:

[server]
ip=127.0.0.1
port=90

[mysql]
username=root
passwd=123123
database=aa
host=127.0.0.1
port=3306
timeout=1.2

根据配置文件定义结构体:

type ServerConfig struct {
	Ip string	`ini:"ip"`
	Port int	`ini:"port"`
}

type MysqlConfig struct {
	UserName string	`ini:"username"`
	Passwd string	`ini:"passwd"`
	DataBase string `ini:"database"`
	Host string	`ini:"host"`
	Port int	`ini:"port"`
	Timeout float32 `ini:"timeout"`
}

type Config struct {
	ServerConf ServerConfig `ini:"server"`
	MysqlConf MysqlConfig	`ini:"mysql"`
}

通过UnmarshalFile方法即可将文件内容加载到定义的Config结构体中

config := &Config{}
err := iniConfig.UnmarshalFile(fileName, config)

同样的也可以通过MarshalFile方法将结构体的内容写入到文件中

fileData, err := ioutil.ReadFile("./config.ini")
if err != nil {
    t.Error("open file error:",err)
}
var config Config
err = unmarshal(fileData, &config)