记事本程序中保存时不能向文件中写入内容

时间:2023-01-04 21:44:21
我写了一个记事本程序,但是现在这个程序出了点问题。当我向点击“保存”菜单项时,不能向文件中写入内容,即文件中原来是什么内容现在还是什么内容。为什么会是这样呢?代码如下,请帮助我,不胜感激。
private void saveFile()
{
if(isFirstSave()==true)
{
asSaveFile();
}
else
{
commonInSaveAndAsSave();
}
}

private void asSaveFile()
{
FileDialog filedialog_save=new FileDialog(this,"保存文件",FileDialog.SAVE);
filedialog_save.setVisible(true);
filename=filedialog_save.getFile();
commonInSaveAndAsSave();
}

private void commonInSaveAndAsSave()
{
try
{
File filetosave=new File(filename);
FileWriter writer=new FileWriter(filetosave);
BufferedWriter bufferedwriter=new BufferedWriter(writer);

String stringtextareacontent=textareausedinallclass.textarea.getText();
bufferedwriter.write(stringtextareacontent,0,stringtextareacontent.length());

bufferedwriter.close();
writer.close();
}
catch(IOException ioexception)
{
ioexception.printStackTrace();
}
}

5 个解决方案

#1


lz有没有看看stringtextareacontent的值?说不定stringtextareacontent里面就没有内容....可以打印出来看看

#2


今下午有时间我将回去试一下,多谢您的帮助。

#3


我回来调试了一下,发现在执行完“String stringtextareacontent=textareausedinallclass.textarea.getText();”这条语句后“stringtextareacontent” 中的值就是文本框中的内容,但是就是文件中没有内容。

#4


引用 3 楼 Mr_Pang 的回复:
我回来调试了一下,发现在执行完“String stringtextareacontent=textareausedinallclass.textarea.getText();”这条语句后“stringtextareacontent” 中的值就是文本框中的内容,但是就是文件中没有内容。

我测试的能保存, 不过,需要注意的是, 

String filename=filedialog_save.getFile();

filename只有文件名, 比如abc.txt, 而不是E:\\test\\abc.txt, 所以存储的文件是在当前目录, 而不是lz选择的目录, lz试试这行代码..

String filename= filedialog_save.getDirectory() + filedialog_save.getFile();

#5


试了您的语句,现在确实可以了。我想原因是不是如果不加获取文件路径的那个方法的话,会默认在程序所在文件夹内的文件中保存。得获取路径之后才能找到我们自己选择的文件。

#1


lz有没有看看stringtextareacontent的值?说不定stringtextareacontent里面就没有内容....可以打印出来看看

#2


今下午有时间我将回去试一下,多谢您的帮助。

#3


我回来调试了一下,发现在执行完“String stringtextareacontent=textareausedinallclass.textarea.getText();”这条语句后“stringtextareacontent” 中的值就是文本框中的内容,但是就是文件中没有内容。

#4


引用 3 楼 Mr_Pang 的回复:
我回来调试了一下,发现在执行完“String stringtextareacontent=textareausedinallclass.textarea.getText();”这条语句后“stringtextareacontent” 中的值就是文本框中的内容,但是就是文件中没有内容。

我测试的能保存, 不过,需要注意的是, 

String filename=filedialog_save.getFile();

filename只有文件名, 比如abc.txt, 而不是E:\\test\\abc.txt, 所以存储的文件是在当前目录, 而不是lz选择的目录, lz试试这行代码..

String filename= filedialog_save.getDirectory() + filedialog_save.getFile();

#5


试了您的语句,现在确实可以了。我想原因是不是如果不加获取文件路径的那个方法的话,会默认在程序所在文件夹内的文件中保存。得获取路径之后才能找到我们自己选择的文件。