JFileChooser打开多个txt文件

如何使用JFileChooser打开两个文本文件,在我选择这些文件后,我想比较它们,在屏幕上显示等等。这可能吗?

您可以让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 readFileAsList(File file) throws IOException { final List ret = new ArrayList(); 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(); 

然后,您可以使用返回的文件句柄进行比较。

在我的情况下,我解决了它声明帧作为初始化的局部变量设置为null:

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