import java.io.FileWriter;
import java.io.PrintWriter;
public class DemoPrint {
public static void main (String args []) {
try{
PrintWriter coolFile = new PrintWriter("c:\\JavaIO\\cool.txt");
FileWriter file = new FileWriter("c:\\JavaIO\\cool.txt", true);
coolFile.println("Why isn't this adding another line?");
coolFile.close();
}
catch (Exception e) {
System.out.println("Error");
}
}
}
所以我是编程/ java的新手,我正在尝试打开这个文件并附加数据并添加另一行,但出于某种原因,数据被删除并被{{1中的任何内容覆盖}}
任何人都可以帮我解决这个问题吗?我知道它可能很容易解决......我正在学习......谢谢!
答案 0 :(得分:4)
您在同一个文件上同时打开PrintWriter
和FileWriter
。这两者并不相关 - 它们是访问同一文件的两个点(这是你真的不应该做的事情)。
PrintWriter
的打开已经完成而没有附加,因此它破坏了文件的所有内容。然后你去打开另一个“视图” - FileWriter
,并设置为追加,但此时,它不再有任何东西可以将附加到。
正确的方法是创建PrintWriter
,以便FileWriter
支持。文件上没有两个视图 - 一个视图位于另一个视图上。
PrintWriter coolFile = new PrintWriter( new FileWriter("filename", true ) );
答案 1 :(得分:0)
这就是你应该如何将printwriter与文件写入器一起使用:
FileWriter fw = new FileWriter("c:\\JavaIO\\cool.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter coolFile = new PrintWriter(bw);
coolFile.println("This is adding another line.");
coolFile.close();