使用JFileChooser读取文件

sas*_*ero 0 java jfilechooser file

我总是用这段代码得到一个NullPointerException

open.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        modify = true;
        JFileChooser chooser = new JFileChooser();
        file = chooser.getSelectedFile();
        BufferedReader reader;
        StringBuilder sb = new StringBuilder();
        try {
            reader = new BufferedReader(new FileReader(file));
            String line = reader.readLine();
            while(line != null) {
                sb.append(line);
                sb.append(System.lineSeparator());
                line = reader.readLine();
            }
            text.setText(sb.toString());
        } 
        catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        catch (IOException e1) {
            e1.printStackTrace();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

NullPointerException就行了 reader = new BufferedReader(new FileReader(file));

我该如何重新组织我的代码?

Kou*_*lik 5

您实际上没有选择该文件.因此,选择器在为所选文件名查询时返回null.

您应该在创建实例后调用chooser.showOpenDialog()chooser.showSaveDialog()创建实例.

看看如何在这里