我尝试将结构化数据序列化为文件。我通过一些例子看上去并提出这样的建筑:去。将[]字节写入文件结果为零字节文件
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
代表写入字节数量的变量也超过一千个 - 文件不应该为空。该文件已创建,但完全是空的。怎么了?
对不起,浪费你的时间:我完全新的去和它的“基础设施”。非常感谢您的详细解释,您的答案相当完美。 –