云起工作室 15711107967
09_文件读写
2025-02-06 10:37:29

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)