2016-07-25 2 views
0

Я хочу выбрать несколько текстовых файлов с помощью JFileChooser, а затем сравнить их. код, чтобы выбрать несколько файлов, как показано нижеJFileChooser, чтобы выбрать несколько текстовых файлов и сравнить их

JFileChooser chooser = new JFileChooser(); 
    chooser.setMultiSelectionEnabled(true); 
    Component frame = null; 
    chooser.showOpenDialog(frame); 
    File[] files = chooser.getSelectedFiles(); 

Как я использовать дескриптор файла для сравнения нескольких файлов. Можно ли сравнивать несколько текстовых файлов с помощью этого метода. У меня есть несколько текстовых файлов, и я хочу проверить, соответствует ли содержимое всех файлов. Если содержимое точно такое же, я вижу MATCH, и если текстовые файлы отличаются друг от друга, я вижу FAIL вместе с разницей в содержании. Большое спасибо за вашу помощь

+0

Что вы хотите сравнить? Текст или слова? Пожалуйста, добавьте еще несколько деталей к вашему вопросу ... –

+0

Что вы подразумеваете под «сравнением»? Отобразить список различий на консоли (aka 'diff')? Покажите параллельное сравнение (aka 'WinMerge' на Windows или аналогичные инструменты в Linux)? Нет ничего встроенного в Java для выполнения любой из этих задач. –

+0

добавлено краткое описание того, что я хочу сравнить. В основном у меня есть несколько текстовых файлов, и я хочу проверить, соответствует ли содержимое всех файлов. Если содержимое точно такое же, я вижу MATCH, и если текстовые файлы отличаются друг от друга, я вижу FAIL вместе с разницей в содержании. – sam

ответ

0

использования FileUtils

пример:

for(int i=0; i<files.length-1; i++) 
    for(int j=i+1; j<files.length; j++) 
     if(FileUtils.contentEquals(files[i], files[j])) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 

пример # 2 - без использования внешних библиотек вы можете использовать метод, описанный в this ответ.

for(int i=0; i<files.length-1; i++) { 
    for(int j=i+1; j<files.length; j++) { 
     byte[] f1 = Files.readAllBytes(files[i]); 
     byte[] f2 = Files.readAllBytes(files[j]); 

     if (Arrays.equals(f1, f2)) 
      System.out.println("file #" + i + " and file #" + j + " are identical."; 
     else 
      System.out.println("file #" + i + " and file #" + j + " are different."; 
    } 
} 

P.S .: Так как вы не упомянули об этом в своем вопросе, я предположил здесь, что вы хотите сравнить содержимое двух файлов и определить, равны ли они или нет.

+0

Да, Раман, вот что я хочу делать. Спасибо за помощь. Просто запрос, требуется ли конкретная версия java для работы. FileUtil не может быть решена ошибка, с которой я сталкиваюсь – sam

+0

Привет @sam вы импортировали FileUtils? вроде этого 'import org.apache.commons.io.FileUtils;' –

+0

Мне нужно будет скачать ** org.apache.commons.io.jar ** для этого отдельно, я думаю, потому что eclipse не дает предложения для любого такого импорта, как теперь. я должен сделать файл jar и распределить его среди других членов, и я не уверен, что все они будут иметь это. есть другой способ, кроме FileUtils. – sam

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