读取文件解析到结构体:
func (c *Config) Load(cfgPath string) error {
if cfgPath == "" {
cfgPath = defaultConfigPath
}
// 打开配置文件;
cfgFile, err := os.Open(cfgPath)
if err != nil {
return err
}
defer cfgFile.Close()
// 解析配置;
if err := json.NewDecoder(cfgFile).Decode(c); err != nil {
return err
}
return nil
}
func (c *Config) Save(cfgPath string) error {
if cfgPath == "" {
cfgPath = defaultConfigPath
}
_ = os.MkdirAll(filepath.Dir(cfgPath), os.ModePerm)
// 创建配置文件;
cfgFile, err := os.Create(cfgPath)
if err != nil {
return err
}
defer cfgFile.Close()
// 编码写入配置文件;
cfgEncoder := json.NewEncoder(cfgFile)
cfgEncoder.SetIndent("", "\t")
if err := cfgEncoder.Encode(c); err != nil {
return err
}
return nil
}