Бинарная библиотека diff для Java

Есть несколько вопросов о библиотеках text-diff для Java на SO, но ни один о бинарном diff. Итак, я иду:

Я ищу бинарную библиотеку diff, реализованную на Java. Я нашел javaxdelta и GNU Diff порт, но мне интересно, есть ли еще какие-нибудь скрытые жемчужины? А может у кого-то есть опыт работы с вышеупомянутыми библиотеками? Сравнение было бы очень полезно.

Наконец, может быть, полезно знать, что я хочу использовать объекты, сериализованные в Avro.

3 ответа

Решение

Я нашел новую (насколько я могу судить) Java-реализацию бинарного сравнения: JBDiff

Если вы хотите сравнить Avro Files, взгляните на Avro Editor, он содержит утилиту сравнения для сериализованных файлов Avro.

Ваш вопрос недостаточно конкретен, чтобы получить хороший ответ. Что вы подразумеваете под "бинарным дифференциалом"?

Если вы хотите увидеть список всех различий между одним байтовым массивом и другим, вы можете реализовать или использовать алгоритм xdelta. Вы также можете преобразовать файл в шестнадцатеричный формат с помощью команды od и использовать стандартную команду patch/diff, если вы предпочитаете писать сценарий оболочки, а не C.

Тем не менее, похоже, что вы хотите сделать что-то конкретное для Avro. Это правда?

Если вы просто хотите сравнить значения полей двух разных файлов Avro и сгенерировать diff, и вы уже знакомы с Avro, все, что вам нужно сделать, это написать программу, которая считывает оба файла и распечатывает различия таким образом, что вы можете прочитать позже, чтобы преобразовать оригинал.

Другие вопросы по тегам