java编写记事本保存功能,保存后有文档,但是文档里面没内容,这是为什么?具体代码在底下
publicvoidactionPerformed(ActionEvente){JFileChooserchooser=newJFileChooser();//choos...
public void actionPerformed(ActionEvent e)
{
JFileChooser chooser = new JFileChooser();
//chooser.setCurrentDirectory(new File(".")); //设置当前目录
//chooser.setMultiSelectionEnabled(true); //设置允许用户在对话框中选择多个文件
chooser.showSaveDialog(TextEdit.this);
try
{
File goal = chooser.getSelectedFile();
setTitle(goal.getName());
FileWriter goalFile = new FileWriter(goal); //用于写入字符文件
BufferedWriter goalBuffered = new BufferedWriter(goalFile); //将文本写入字符输出流
goalBuffered.write(textArea.getText());
goalFile.close();
goalBuffered.close();
}
catch(IOException e2)
{
e2.printStackTrace();
}
} 展开
{
JFileChooser chooser = new JFileChooser();
//chooser.setCurrentDirectory(new File(".")); //设置当前目录
//chooser.setMultiSelectionEnabled(true); //设置允许用户在对话框中选择多个文件
chooser.showSaveDialog(TextEdit.this);
try
{
File goal = chooser.getSelectedFile();
setTitle(goal.getName());
FileWriter goalFile = new FileWriter(goal); //用于写入字符文件
BufferedWriter goalBuffered = new BufferedWriter(goalFile); //将文本写入字符输出流
goalBuffered.write(textArea.getText());
goalFile.close();
goalBuffered.close();
}
catch(IOException e2)
{
e2.printStackTrace();
}
} 展开
2个回答
2017-11-13
展开全部
goalFile.close();
goalBuffered.close();
这两行的顺序,对调一下。
goalBuffered.close();
这两行的顺序,对调一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去掉goalFile.close();
更多追问追答
追问
可以了!可以简单地讲一下为什么吗?还有保存的文档怎么实现换行?我可以加分
追答
1、BufferedWriter goalBuffered = new BufferedWriter(goalFile);
BufferedWriter只是个包装类,你传入了goalFile,那么goalFile.close()和goalBuffered.close()关闭的是同一个输入流也就是:FileWriter goalFile = new FileWriter(goal);
BufferedWriter关闭时应该会判断流是否关闭,
并且BufferedWriter的close之前是会刷新缓冲区的,
如果前面goalFile.close()了,后面再goalBuffered.close()是没执行的,自然也就没刷新缓冲区。
2、写入换行符 \n,如果不行就写入与平台相关的换行符,获取方式:System.getPropertie("line.separator");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询