如何确保在java中从控制台写入文本文件时不会发生覆盖?

时间:2015-12-11 08:48:53

标签: java console overwrite

我正在尝试将控制台输出写入文本文件(Data.txt),所以这是我的代码:

PrintStream out = new PrintStream(new File("/home/cse/Desktop/Data.txt"));  
System.setOut(out);
out.print("");

当我在运行程序后再次运行程序时,输出将替换Data.txt文件中存在的旧数据。但我希望它继续添加之前停止的数据。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您需要传递使用the constructor that accepts an append flag创建的SELECT Set1.FromDate,MIN(List1.ToDate) AS ToDate, DATEDIFF(MONTH,Set1.FromDate,MIN(List1.ToDate)) FROM @temp Set1 INNER JOIN @temp List1 ON Set1.FromDate <= List1.ToDate AND NOT EXISTS(SELECT * FROM @temp List2 WHERE List1.ToDate >= List2.FromDate AND List1.ToDate < List2.ToDate) WHERE NOT EXISTS(SELECT * FROM @temp Set2 WHERE Set1.FromDate > Set2.FromDate AND Set1.FromDate <= Set2.ToDate) GROUP BY Set1.FromDate ORDER BY Set1.FromDate

FileOutputStream

PrintStream out = new PrintStream(new FileOutputStream("/home/cse/Desktop/Data.txt", true)); 表示新内容将附加到现有文件中。

答案 1 :(得分:-2)

使用out.append()可以为你完成这项工作。

PrintStream out = new PrintStream(new File("/home/cse/Desktop/Data.txt"));  
System.setOut(out);
out.append("");