有没有在C#中序列化和反序列化大于10M的大文件的好方法?
提前感谢。
有没有在C#中序列化和反序列化大于10M的大文件的好方法?
提前感谢。
你可以在这里查看我对于这个问题的回答(那里还有其他相关的答案)。
我的方法使用了BinaryReader和BinaryWriter以获得更好的性能。
最近我在一个项目中使用了这种方法去反序列化50MB文件,速度非常快(不到5秒),相比起内置的序列化或Xml序列化(10分钟才完成我的数据集)。
在序列化/反序列化小文件和大文件之间没有任何区别。您只需要确保不将非常大的文件反序列化到内存中,否则会导致OOM。
当然,处理大文件需要更多时间。如果这使您的用户界面无响应,则需要在后台线程中进行此处理。BackgroundWorker是典型的解决方案。
顺便说一句,您的问题太过模糊了。
你确定序列化/反序列化是处理如此大量数据的正确方法吗?也许像SQLite这样的客户端数据库会是更好的解决方案,你可以查询所需的确切数据,而不仅仅是将所有数据加载到内存中。