2015-03-30 5 views
1

Есть два текстовых файла. Я надеюсь узнать, что является самым простым способом JAVA, чтобы проверить, эквивалентны ли их СОДЕРЖАНИЕ.Java: проверить эквивалентность двух текстовых файлов?

На скорлупе, я обычно использую diff команду:

$ diff 1.txt 1.same.txt # nothing is shown if 1.txt and 1.same.txt have the same contents 
$ diff 1.txt 2.txt 
4a5,6 
> 20, -, 22.0 
> 10, 10.0, - 
+2

Что именно вы подразумеваете под «эквивалентом»? Должны ли они быть байт-байт одинаковыми? Могут ли они быть одними и теми же кодами Unicode, но представлены в разных кодировках? Могут ли они отличаться по порядку байтов? Могут ли они различаться в форме нормализации? «Эквивалент» - сложный термин, когда речь идет о тексте. –

+1

вы могли бы сделать что-то вроде [this] (http://stackoverflow.com/questions/15441315/java-and-hash-algorithm-to-compare-files) – SomeJavaGuy

ответ

1

взглянуть на google-diff-match-patch, который реализует диф Майера.

Надежные алгоритмы для выполнения операций, необходимых для синхронизации обычного текста.

Diff: Сравнить два блока обычного текста и эффективно вернуть список различий.

Соотношение: учитывая строку поиска, найдите свое лучшее нечеткое соответствие в блоке простой текст. Взвешен как для точности, так и для местоположения.

Патч: Применить список патчей на обычный текст. Используйте исправление, применимое к , даже если базовый текст не соответствует.

Смежные вопросы