用于Java的二进制差异库

时间:2011-03-02 05:50:23

标签: java diff binary-diff

关于SO的Java文本差异库有几个问题,但没有关于二元差异的问题。所以我走了:

我正在寻找一个二进制差异库,用Java实现。我找到了javaxdeltaGNU Diff port,但我想知道是否还有其他隐藏的宝石?也许有人有上述图书馆的经验?比较会非常有用。

最后,也许知道我想要使用Avro对序列化的对象进行差异化是很有帮助的。

3 个答案:

答案 0 :(得分:2)

我发现了一个新的(据我所知)Java二进制差异实现:JBDiff

答案 1 :(得分:0)

如果您想比较Avro文件,请查看Avro Editor,它包含Avro序列化文件的比较实用程序。

答案 2 :(得分:-1)

你的问题不够具体,无法得到一个好的答案。你是什​​么意思“二元差异”?

如果要查看一个字节数组与另一个字节数组之间所有差异的列表,可以实现或使用xdelta算法。你也可以使用od命令将文件转换为十六进制,如果你想写一个比C更好的shell脚本,可以使用标准的patch / diff命令。

然而,听起来你想做一些特定于Avro的事情。这是真的吗?

如果您只想比较两个不同Avro文件的字段值并生成差异,并且您已经熟悉Avro,那么您需要做的就是编写一个程序来读取这两个文件并打印出差异以某种方式,您可以稍后阅读以转换原始。