Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从一个操作到另一个操作获取文件路径?_Java - Fatal编程技术网

Java 如何从一个操作到另一个操作获取文件路径?

Java 如何从一个操作到另一个操作获取文件路径?,java,Java,我有个小问题。我想从“打开”操作中获取文件的路径,我想在“保存”操作和另外两个操作中使用它。。。对我来说最好的方法是保存字符串的路径,但我不知道怎么做。 这是我的代码: final String pathmain; Action open = new AbstractAction("Open"){ public void actionPerformed(ActionEvent e){ JFileChooser chooser

我有个小问题。我想从“打开”操作中获取文件的路径,我想在“保存”操作和另外两个操作中使用它。。。对我来说最好的方法是保存字符串的路径,但我不知道怎么做。 这是我的代码:

final String pathmain;
        Action open = new AbstractAction("Open"){
            public void actionPerformed(ActionEvent e){
                JFileChooser chooser = new JFileChooser();
                FileNameExtensionFilter filter = new FileNameExtensionFilter(
                    "Pliki tekstowe txt", "txt");
                chooser.setFileFilter(filter);
                int returnVal = chooser.showOpenDialog(getParent());
                if(returnVal == JFileChooser.APPROVE_OPTION) {
                  // System.out.println("You chose to open this file: "+ chooser.getSelectedFile().getName());
                  String path = chooser.getSelectedFile().toString();

                  try {
                    FileReader fr = new FileReader(path);
                    BufferedReader br = new BufferedReader(fr);
                    String s;
                    while((s = br.readLine()) !=null){
                        textarea.append(s+"\n");
                    }
                } catch (FileNotFoundException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

                }
            }
        };
        Action save = new AbstractAction("Save"){
            public void actionPerformed(ActionEvent e){
                try {
                    BufferedWriter out = new BufferedWriter(new FileWriter("aaa.txt"));
                    String buffer = textarea.getText();
                    //FileWriter fw = new FileWriter((textarea.getText().toString()));
                    //textarea.write(pw);
                    out.write(buffer);
                    out.close();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        };

将选定文件存储在定义这两个动作的对象的属性中

public class MyPanel extends JPanel {

    private File selectedFile;

    public MyPanel() {
         Action open = new AbstractAction("Open") {
             public void actionPerformed(ActionEvent e) {
                 ...
                 selectedFile = ...
             }
         };
         ...
    } 
}

好的,现在我有了如下smth:它在线程“AWT-EventQueue-0”java.lang中给出了错误:异常。NullPointerException@Blackchart这是因为您尚未初始化所选的
文件
实例。这可能对你有帮助,好吧,那么现在怎么了?我想修复它,但它仍然不想工作:(Debugger中有趣的是,我可以看到路径是正确的。@Blackchart首先查看我在前面的评论中提供的链接并理解它,然后在代码中声明为
File
String