javaswing如何逐个读取多个文件并显示在同一个文本区域?

How to read multiple files one by one and display in the same text area in java swing?

我正在为一项作业编写代码。我正在使用 java swing 来做到这一点。我需要知道应该如何更改我的代码以在文本区域中显示多个文件内容。

我已经尝试了一些代码。我添加了一个 jButton 和一个 jTextArea 来读取多个文件。我已经对 setMultiSelectionEnabled(true) 和 getSelectedFiles() 有所了解。

//This is my code inside the jButton

    JFileChooser chooser = new JFileChooser();
    chooser.setMultiSelectionEnabled(true);
    chooser.showOpenDialog(null);
    File files = chooser.getSelectedFiles();
    String filename = files.getAbsolutePath();


    try{
       FileReader reader = new FileReader(filename);
       BufferedReader br = new BufferedReader(reader);
       jTextArea1.read(br, null);

       br.close();
       jTextArea1.requestFocus();
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

我的文本区只能获取一个文件内容。请帮我开发这个。谢谢!

如果你想在一个文本区域中放置多个文件,那么你不能使用read(...)方法。

相反,您需要逐行读取每个文件,然后使用 append(...) 方法将文本添加到文本区域。

试试这个代码:

  JFileChooser chooser = new JFileChooser();
        chooser.setMultiSelectionEnabled(true);
        chooser.showOpenDialog(null);
        File[] files = chooser.getSelectedFiles();
       // String filename = files.getAbsolutePath();



           for(File f:files){
           FileReader reader = new FileReader(f);
           BufferedReader br = new BufferedReader(reader);
           while( (line = br.readLine()) != null ) {
                jTextArea1.append(line);
           }

           br.close();
           //jTextArea1.requestFocus();
         }