我一直在用Java开发一个小项目。程序从不同的方法写入日志文件。但每次使用方法时,文件的内容都会被删除,所有写入的内容都是最后一个方法的结果。 这是该程序的代码片段:
// dir , log_file , exp_date and amount are declared in the code removed
public static void WriteHeader() throws IOException
{
FileWriter fileWriter = new FileWriter(dir+"/"+log_file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
Console console = System.console();
exp_date = console.readLine("Enter a string here: ");
bufferedWriter.write(exp_date);
bufferedWriter.close();
}
public static void WriteNewLine() throws IOException
{
FileWriter fileWriter = new FileWriter(dir+"/"+log_file);
BufferedWriter bufferedWriter2 = new BufferedWriter(fileWriter);
Console console = System.console();
amount = console.readLine("Enter another string here :");
bufferedWriter2.newLine();
bufferedWriter2.write(amount);
bufferedWriter2.close();
}
答案 0 :(得分:1)
您需要以附加模式http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter(java.io.File创建编写器,布尔值)
答案 1 :(得分:0)
您需要以append
模式打开文件,否则一旦关闭文件并重新打开文件,它就会删除以前的数据。 http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter(java.lang.String,布尔值)
FileWriter fileWriter = new FileWriter(dir+"/"+log_file, true);
答案 2 :(得分:0)
FileWriter fw = new FileWriter(file, true);
我非常确定FileWriter有一个重载的构造函数,用于附加到文件而不是覆盖文件
我还会先检查文件是否存在。
file.exists();