【发布时间】:2015-03-02 22:43:16
【问题描述】:
我遇到了以下问题,我有一个自定义文件类型,我希望它显示在其中序列化的特定图像(此文件以二进制序列化)但我的文件大小可以达到 Gb 大小。
因此,为了避免由于文件可能过大而导致的性能问题,我想反序列化图像的属性,而不必反序列化文件包含的所有不必要的信息。
这可能吗?
【问题讨论】:
-
这完全取决于文件格式。 Binary 不是一种格式,而是一个术语,表示什么文件是 some format 而不是文本。通常不同的文件格式具有标题、数据、属性等。如果您知道文件中的location(位置),则可能通过只读标题定位然后只读您需要的属性来实现。
-
感谢@Sinatr,这正是我所需要的,但我已经意识到我想要反序列化的属性不是在一个恒定的位置,我也没有必要的信息来数学上找到它。我必须使用生成文件的程序打开文件,然后获取我需要的信息。
-
文件格式是你设计的吗?然后你可以简单地使用现有的序列化器来序列化/反序列化 header/properties/data。查看protobuf.net。文件格式可以是:格式标签、标头大小、标头、数据。然后你只需读取格式标签以确保它是你的格式,然后是大小,然后是标题,然后反序列化标题并获取标题属性。
-
你用什么序列化的?它是什么格式的?
标签: c# .net binary deserialization