我想将结构化数据序列化到文件中。我查看了一些示例,并做出了如下构造:
func (order Order) Serialize(folder string) {
b := bytes.Buffer{}
e := gob.NewEncoder(&b)
err := e.Encode(order)
if err != nil { panic(err) }
os.MkdirAll(folder, 0777)
file, err := os.Create(folder + order.Id)
if err != nil { panic(err) }
defer file.Close()
writer := bufio.NewWriter(file)
n, err := writer.Write(b.Bytes())
fmt.Println(n)
if err != nil {
panic(err)
}
}
Serialize
是一个将对象序列化成文件的方法,由其 id 属性调用。我通过调试器查看了一下 - 在写入之前,字节缓冲区中包含了数据。我的意思是对象已经完全初始化。即使表示已写入字节数量的变量 n
超过一千 - 文件也不应该为空。文件已创建,但是它是完全空的。出了什么问题吗?