Как я могу использовать JFileChooser для открытия двух текстовых файлов, и после того, как я выбрал эти файлы, я хочу сравнить их, показать на экране и т.д. Возможно ли это?
JFileChooser для открытия нескольких файлов txt
Ответ 1
Вы можете выбрать JFileChooser
несколько файлов и вернуть массив объектов File вместо одного
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
Метод showOpenDialog(frame)
возвращается только после нажатия кнопки ok
ИЗМЕНИТЬ
Сделайте так:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
if(files.length >= 2) {
compare(readFileAsList(files[0]), readFileAsList(files[1]));
}
И измените ваш readFileAsList
на:
private static List<String> readFileAsList(File file) throws IOException {
final List<String> ret = new ArrayList<String>();
final BufferedReader br = new BufferedReader(new FileReader(file));
try {
String strLine;
while ((strLine = br.readLine()) != null) {
ret.add(strLine);
}
return ret;
} finally {
br.close();
}
}
Ответ 2
Вы можете использовать:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
// Show the dialog; wait until dialog is closed
chooser.showOpenDialog(frame);
// Retrieve the selected files.
File[] files = chooser.getSelectedFiles();
Затем вы можете использовать возвращаемые файлы для сравнения.
Ответ 3
В моем случае я решил, что он объявляет фрейм как инициализированную локальную переменную, установленную в null:
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
Component frame = null;
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();