Go语言将结构体写入文件

Go语言将结构体写入文件教程

Golang 中,如果需要将 结构体 写入 文件,那么我们可以先将结构体进行编码之后 写入文件,然后再 读出文件 的内容,最后,再对读出的内容进行解码出结构体。

案例

Golang读写结构体到文件

使用 json.Marshal 编码结构体,再使用 json.Unmarshal 解码结构体

package main import ( "encoding/json" "fmt" "io/ioutil" ) type Student struct { Name string Age int Score float64 } func main() { fmt.Println("嗨客网(www.haicoder.net)") var( fileName = "C:/haicoder.txt" ) stu := Student{ Name:"HaiCoder", Age:109, Score:100.5, } fileContent, err := json.Marshal(stu) if err = ioutil.WriteFile(fileName, fileContent, 0666); err != nil{ fmt.Println("Writefile Error =", err) return } //读取文件 fileContent, err = ioutil.ReadFile(fileName) if err != nil{ fmt.Println("Read file err =", err) return } var stuRes Student if err := json.Unmarshal(fileContent, &stuRes); err != nil{ fmt.Println("Read file error =", err) }else{ fmt.Println("Read file success =", stuRes) } }

程序运行后,控制台输出如下:

24_golang读写结构体.png

我们首先定义了一个 Student 结构体,接着,定义了一个 Student 结构体的实例 stu,并使用 json.Marshal 将结构体编码为 字节 数组。

接着,我们使用 ioutil.ReadFile 读出文件内容,并使用 json.Unmarshal 解码读出的文件内容,我们发现,我们能够成功的将写入的结构体读取出来。