我该如何使用JFileChooser打开两个文本文件,选择完这些文件后,我想要进行比较,并将结果显示在屏幕上等等。这是否可行?
我该如何使用JFileChooser打开两个文本文件,选择完这些文件后,我想要进行比较,并将结果显示在屏幕上等等。这是否可行?
您可以让您的 JFileChooser
选择多个文件并返回一个文件对象数组而不是一个。
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();
showOpenDialog(frame)
方法只会在你点击确定按钮后才返回结果。
编辑:
所以,做这个:
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();
}
}
你可以使用以下代码:
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();
你可以使用返回的文件句柄进行比较。
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
Component frame = null;
chooser.showOpenDialog(frame);
File[] files = chooser.getSelectedFiles();