1、读取文件json数据
type Conf struct {
Name string
}
var conf *Conf = nil
func main(){
path := "./config/app.json"
file, err := os.Open(path)
if err != nil {
println("open err")
return
}
defer file.Close()
reader := bufio.NewReader(file)
decoder := json.NewDecoder(reader)
err1 := decoder.Decode(&conf)
if err1 != nil {
println("decode err")
return
}
println(conf.Name)
}
2、写入数据
func main() {
path := "./config/app.json"
//文件夹不存在无法创建路径
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
println("open err")
return
}
defer file.Close()
writer := bufio.NewWriter(file)
writer.WriteString("asdf sadf \n")
writer.Flush()
}
3、逐行读取数据
func main() {
path := "./config/app.json"
file, err := os.Open(path)
if err != nil {
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
println(scanner.Text())
}
}
4、读取json数据
byteData, _ := os.ReadFile("./conf.json")
conf := Conf{}
json.Unmarshal(byteData, &conf)
println(conf.Api)
5、嵌入式
嵌入式文件数据,无需install embed 直接 import
import (
_ "embed"
)
//go:embed conf.json 前面的 // 必加
var data string //data 便是 conf.json 里的字符串 可以直接用json解析 也可以是byte类型 []byte
conf := Conf{}
json.Unmarshal([]byte(data), &conf) //byte类型无需再转化数据类型
println(conf.Api)