Java: Проверить эквивалентность двух текстовых файлов?

1

Есть два текстовых файла. Я надеюсь узнать, что является самым простым способом 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
    Вы могли бы сделать что-то вроде этого
Теги:

1 ответ

1
Лучший ответ

Посмотрите на google-diff-match-patch, который реализует Myer diff.

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню