文件选择器无法打开我的文件

File Chooser is unable to open my file

所以我最近遇到了这个问题,我的 txt 文件无法打开。 我不确定我到底哪里出错了。这是我的文件选择器 class.

中的代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class FileChooser {

public static void emailFile(JTextArea textRecepients) throws IOException {
    JFileChooser chooser = new JFileChooser();  
    chooser.setCurrentDirectory(new File("."));
    chooser.setFileFilter(new javax.swing.filechooser.FileFilter() {

        public boolean accept(File f) {
            return f.getName().toLowerCase().endsWith(".txt")
            || f.isDirectory();
        }

        public String getDescription() {
            return "txt file";
        }
    });

    int r = chooser.showOpenDialog(new JFrame());
    if (r == JFileChooser.APPROVE_OPTION) {
        String name = chooser.getSelectedFile().getName();
        System.out.println(name);
        String line;
        try {
            FileReader fileReader = new FileReader(name);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            while((line = bufferedReader.readLine()) != null) {
                textRecepients.setText(line);
            }
            bufferedReader.close();         
        } catch(FileNotFoundException ex) {
            System.out.println("Unable to open file '" + name + "'");                
        }
    }
}

它应该使用 JFileChooser 获取我的 txt 文件并在 JTextArea.

中逐行打印内容

您需要使用

String path = chooser.getSelectedFile().getAbsolutePath();

而不是获取名称。

问题是每次循环都会覆盖文本:

while((line = bufferedReader.readLine()) != null) {
    textRecepients.setText(line);
}

使用 StringBuilder:
(在 try 块之前):

StringBuilder sb = new StringBuilder();

然后在块中:

while ((line = bufferedReader.readLine()) != null) {
    sb.append(line+"\n");
}
textRecepients.setText(sb.toString());
...