gpt4 book ai didi

go - 追加到磁盘文件中的 golang gob

转载 作者:IT王子 更新时间:2023-10-29 01:39:34 24 4
gpt4 key购买 nike

我正在尝试将 gob 编码的数据保存在磁盘上的一个文件中,作为一个简单的数据存储。但是,当我下次打开它时,gob 编码器会忽略文件中已有的任何数据,并在发送数据之前重新发送已发送格式的定义。看到 gob.Encoder 采用 io.Writer 而不是 io.ReadWriter,这是有道理的。编码器不知道文件中有什么,因为它无法从中读取。

然而,这是非常低效的。它也不必要地难以解析,因为每次编码器在写入文件时重新启动时都必须重置解码器,因为 gob 类型 ID 可能已经更改。

如何继续写入包含 gob 数据的文件的末尾?我是否必须创建一个新文件,移动所有数据以便 gob 编码器知道它已经发送了哪些类型,或者我有没有办法告诉编码器它应该已经知道哪些类型,或者其他方式?我需要它跨软件重启工作。

最佳答案

不可能用其他编码器在写入 gob 值流时所具有的状态来重建编码器。如果您在附加值时不能使用原始编码器,那么您有几个选择:

  • 按照您的建议移动数据。
  • 使用帧机制将多个 gob 流存储到单个文件中。例如,您可以在每个 gob 流的前面加上该流的长度。

关于go - 追加到磁盘文件中的 golang gob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com