JFileChooser to open multiple txt files

前端 未结 3 1782
醉梦人生
醉梦人生 2020-12-17 09:51

How can I use JFileChooser to open two text files and after I selected these files, I want to compare them, show on the screen etc. Is this possible?

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-17 10:50

    You can have your JFileChooser select multiple files and return an array of File objects instead of one

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

    The method showOpenDialog(frame) only returns once you click the ok button

    EDIT

    So do this:

    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]));
    }
    

    And change your readFileAsList to:

    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();
        }
    }
    

提交回复
热议问题