我使用java bufferedwriter写入csv文件。每次运行程序时,数据都会正确写入文件,但仍可在文件中找到以前运行的数据。
每次在bufferwriter再次启动之前,我都需要将文件清空。
我尝试过使用flush()方法。
有人有什么建议吗?以下是我的代码;
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.newLine();
bw.append(" " + epochs);
bw.append(",");
bw.append("badfact" + badfacts);
bw.flush();
bw.close();
}
答案 0 :(得分:2)
您需要执行以下操作,
FileWriter fw = new FileWriter(file.getAbsoluteFile(), false);
FileWriter
构造函数中的第二个参数用于追加。
如果是true
,则数据将附加到文件中的先前数据。如果false
,那么之前的数据将被删除,并且将写入新数据。
答案 1 :(得分:2)
正如@GPRathour回答的那样,第二个参数是附加到文件。
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
我只是想补充说1参数调用等同于append = false
所以你也可以使用它。
FileWriter fw = new FileWriter(file.getAbsoluteFile());
答案 2 :(得分:0)
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。
<强>参数:强>
fileName - String依赖于系统的文件名。
追加 - 如果 true 则为布尔值,则数据将写入文件的末尾而不是开头。
修改后的代码:您必须为append
参数提供虚假值。
FileWriter fw = new FileWriter(file.getAbsoluteFile(),false);