BufferedWriter无法重启

时间:2014-12-11 11:17:08

标签: java csv

我使用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();
}

3 个答案:

答案 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 则为布尔值,则数据将写入文件的末尾而不是开头。

refer java docs

修改后的代码:您必须为append参数提供虚假值。

FileWriter fw = new FileWriter(file.getAbsoluteFile(),false);