gpt4 book ai didi

c# - C# 中包含 1000 条记录的二进制文件格式

转载 作者:太空狗 更新时间:2023-10-29 22:28:32 27 4
gpt4 key购买 nike

我希望将数组模型对象序列化为二进制流。模型类将主要具有字符串和整数属性。

我相信我可以将类标记为 [Serializable] 并使用二进制格式化程序,但是我很想知道您是否认为这是最好的方法,因为我的首要任务是拥有尽可能小的文件可以通过低带宽连接进行传输(我也可以压缩/解压缩文件)。

该文件可能有 1000 条记录,因此理想情况下,我希望能够追加到磁盘并逐条记录地从磁盘读取,而不必一次将整个文件放入内存。

所以我的首要任务是:小文件大小和高效内存使用。

也许有一个预先编写的框架?使用 XML 和 CSV 文件似乎很容易!希望它也具有自定义二进制格式。

谢谢

最佳答案

我建议 protobuf.net这是非常有效的。

话虽如此,这将无法处理集合中单个对象的序列化/反序列化。您需要自己实现的那一部分。

  • 一个解决方案是:将对象作为单个文件存储在文件夹中。文件名将包含一个引用,以便您可以根据名称找到所需的对象。

  • 另一种方法是拥有一个文件,但保留一个索引文件,该文件保留所有对象及其在文件中的位置的列表。这要复杂得多,因为当您保存文件中间的对象时,您必须移动所有其他地址,也许 b 树更有效。

关于c# - C# 中包含 1000 条记录的二进制文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5354238/

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