我正在尝试使用Java向文本文件添加一行。当我运行程序时,我的意思是添加一个简单的行,但我的程序在写入新数据之前删除了文本文件中的所有旧数据。
以下是代码:
FileWriter fw = null;
PrintWriter pw = null;
try {
fw = new FileWriter("output.txt");
pw = new PrintWriter(fw);
pw.write("testing line \n");
pw.close();
fw.close();
} catch (IOException ex) {
Logger.getLogger(FileAccessView.class.getName()).log(Level.SEVERE, null, ex);
}
答案 0 :(得分:21)
改变这个:
fw = new FileWriter("output.txt");
到
fw = new FileWriter("output.txt", true);
有关详细信息,请参阅javadoc - 实际上“附加”默认为false。
请注意,FileWriter
通常不是一个很好用的类 - 我更喜欢使用FileOutputStream
中包含的OutputStreamWriter
,因为这可以指定要使用的字符编码,而不是使用您的操作系统默认值。
答案 1 :(得分:6)
改变这个:
fw = new FileWriter("output.txt");
到此:
fw = new FileWriter("output.txt", true);
FileWriter
的{{3}}的第二个参数是您是否要附加到您正在打开的文件。这会导致文件指针在写入之前移动到文件的末尾。
答案 2 :(得分:1)
使用
fw = new FileWriter("output.txt", true);
来自JavaDoc:
构造一个给定的FileWriter对象 文件对象。如果第二个参数是 如果为true,则写入字节 文件的结尾而不是 开始。
答案 3 :(得分:1)
两个选项:
new FileWriter( path, true );