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