我需要以专有格式编辑一些讨厌的二进制文件,所以我在这种二进制格式和XML之间编写了一个转换器。现在我可以编辑有趣的位,但遗憾的是这种格式嵌入了大量的原始二进制数据 - 我需要将它保持原样(或者重新转换回转换),但它无论如何都没有意义的可编辑因此我希望看到它尽可能少。
最简单的方法是使这种blob占用最少的空间,同时尽量减少这种blob意外损坏的可能性?我在考虑gzip + base64并将校验和和大小放在blob标签的属性中 - 或者是否有更合理的方法?
答案 0 :(得分:0)
如果可以从原始文件轻松复制斑点,您可以简单地参考它们。像
这样的东西<blob start="1000" end="2000"/>
或
<blob seq='1'/>
# in another file:
1 1000 2000
<强>更新强>
由于原始文件将被删除(请参阅注释),因此不能按原样使用。
这样可行:
<blob start='0' end='1000'/>
# Another file. Depending on space/time requirements, you may either
# not compress anything, compress the whole file, or compress each blob.
[blob 1][blob 2][blob 3]
如果你绝对需要单文件输出,你也可以在XML中嵌入第二个文件(带编码+校验和),但它与你原来的想法没有太大的改进。