把“保存”功能的file局部变量也放到类变量中,就行了!如下:
oitem.addActionListener(new ActionListener() {
/*
* 读取文件内容显示到文本域中 思路: 1
* 通过getDirectory(),getFile方法获取文件的路径,判断是否为空(因为用户有时点取消);如果为空则不做任何动作。
* 2 创建字符输入流与文件相关联 3决断是否读到行未尾,如果读到行未尾,将该字符串添加到文域中 4关闭流
*/
@Override
public void actionPerformed(ActionEvent e) {
of.setVisible(true);
String path = of.getDirectory();
String fileName = of.getFile();
// System.out.println(path+"....."+fileName);
// 当用户点取消就会报空指针异常,所以要判断
if (path == null || fileName == null)
// 如果为空不做任何动作
return;
// 文域设置为空
ta.setText("");
// 封装成文件
//File file = new File(path, fileName);//这样做当执行完后,就不能保存“打开”事件所对应的文件的目录,需要把它定义给类变量
//在类中定义类变量
File file ;
//再把上面的修改成
file = new File(path, fileName);
// 创建输入流
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null)
ta.append(line + "\r\n");
} catch (Exception e1) {
new RuntimeException("读取失败");
}
}
});
版主给我加技术分呀,谢谢! |