我有一个程序将结果文件保存在二进制文件中。在程序中也可以将结果文件导出为 XML 格式。
由于程序本身不善于浏览结果,我自己编写了一个程序来读取这些结果文件,但显然使用的是 XML 格式。
问题是,从二进制文件导出的 XML 文件非常庞大!原始程序可以使用的二进制文件约为 100 KB,导出为 XML 的相同文件约为 2~3 MB。
我想知道有没有办法可以找出如何读取原始二进制文件!
我有一个程序将结果文件保存在二进制文件中。在程序中也可以将结果文件导出为 XML 格式。
由于程序本身不善于浏览结果,我自己编写了一个程序来读取这些结果文件,但显然使用的是 XML 格式。
问题是,从二进制文件导出的 XML 文件非常庞大!原始程序可以使用的二进制文件约为 100 KB,导出为 XML 的相同文件约为 2~3 MB。
我想知道有没有办法可以找出如何读取原始二进制文件!
要从二进制文件中获取数据,您需要知道它的结构。如果您不了解结构,我认为这将是无望的努力。xml 文件要大得多,因为它除了数据之外还包含结构。你可以阅读和解释它。
您需要阅读程序源代码,如果它不可用 - 在 ILDASM 或 Reflector 中打开此程序,并尝试了解二进制文件是如何创建的。可能这是使用二进制序列化完成的。
您可以定义自己的类型,它们是原始类型的精确副本,包括序列化属性,并使用二进制序列化加载它们。
但是,第三方文件格式的每次更改都可能需要您更改程序。我认为最好使用 XML。