2 Star 1 Fork 2

go-mao/mao

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
config.go 1007 Bytes
一键复制 编辑 原始数据 按行查看 历史
haitgo 提交于 2022-11-29 11:15 . v1.0.0
//配置文件的读取和写入
//目前仅支持json格式配置文件
package config
import (
"bytes"
"encoding/json"
"io/ioutil"
"os"
)
//配置读取,只读取json类型文件,可读到多个结构体上,如果配置不存在则创建一个
func Read(filename string, ptr interface{}, ptrs ...interface{}) error {
if _, err := os.Open(filename); err != nil {
return Write(filename, ptr)
}
data, err := ioutil.ReadFile(filename)
if err != nil {
return err
}
ptrs = append(ptrs, ptr)
for _, ptr := range ptrs {
if ptr == nil {
continue
}
if err := json.Unmarshal(data, ptr); err != nil {
return err
}
}
return nil
}
//配置写入,写入前先将json数据格式化,方便修改时易读
func Write(filename string, ptr interface{}) error {
data, err := json.Marshal(ptr)
if err != nil {
return err
}
var str bytes.Buffer
if err = json.Indent(&str, []byte(data), "", " "); err != nil {
return err
}
return ioutil.WriteFile(filename, str.Bytes(), 0600)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/go-mao/mao.git
git@gitee.com:go-mao/mao.git
go-mao
mao
mao
v1.0.14

搜索帮助

0d507c66 1850385 C8b1a773 1850385