在SO上有几个关于Java文本差异库的问题,但是没有关于二进制差异的。所以我来了:
我正在寻找一个用Java实现的二进制差异库。我发现了javaxdelta和GNU Diff port,但我想知道是否还有其他隐藏的宝藏?而且,也许有人使用过上述库?进行比较将非常有帮助。
最后,也许知道我想要使用Avro序列化的对象进行差异比较会有所帮助。
在SO上有几个关于Java文本差异库的问题,但是没有关于二进制差异的。所以我来了:
我正在寻找一个用Java实现的二进制差异库。我发现了javaxdelta和GNU Diff port,但我想知道是否还有其他隐藏的宝藏?而且,也许有人使用过上述库?进行比较将非常有帮助。
最后,也许知道我想要使用Avro序列化的对象进行差异比较会有所帮助。
如果你想比较 Avro 文件,请看看 Avro 编辑器,它包含了一个用于 Avro 序列化文件比较的实用工具。
你的问题不够具体,导致很难得到一个好的答案。你所说的“二进制差分”是什么意思?
如果你想看到一个字节数组与另一个之间的所有差异列表,你可以实现或使用xdelta算法。你也可以使用od命令将文件转换为十六进制,并使用标准补丁/差异命令,如果你宁愿编写一个shell脚本而不是C。
然而,听起来你想做一些特定于Avro的事情。是这样吗?
如果你只想比较两个不同Avro文件的字段值并生成差异,而且你已经熟悉了Avro,那么你只需要编写一个程序,读取两个文件并以一种你后续能够转换原始文件的方式打印出差异即可。