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

kri*_*son 5 .net c# binary binaryfiles binaryformatter

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

我相信我可以将类标记为[Serializable]并使用二进制格式,但是我有兴趣知道您是否认为这是最好的方式,请记住我的优先级是尽可能减小文件的传输通过低带宽连接(我也可以压缩/解压缩文件).

该文件可能有1000条记录,所以理想情况下我希望能够附加到磁盘并按记录读取磁盘记录,而不必将整个文件同时存储在内存中.

所以我的优先事项是:文件小,内存使用效率高.

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

谢谢

Ali*_*tad 6

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

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

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

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

  • 对于第二个选项:[FileDB](http://nuget.org/List/Packages/FileDB). (2认同)