PrintWriter在每次执行后附加行(不刷新文件)

时间:2014-11-19 20:12:47

标签: java file csv filewriter printwriter

我是java的新手,我正在将数据写入文件。我的代码如下所示:

File file= new File("model/file.csv");
FileOutputStream writer=null;
try {
    writer = new FileOutputStream(file, true);
} catch (IOException e) {
    e.printStackTrace();
}
PrintWriter pw=null;
pw = new PrintWriter(writer);
try {
    for (int j=0;j< 24; j++)
    pw.format("%.3f%n",MyData);
}
finally {
    pw.close();
} 

输出:

1
2
3
4

但是当我第二次运行程序时,我的输出文件如下所示:

输出:

1
2
3
4
1
2
3
4

好的,我认为

 writer = new FileOutputStream(file, true);

表示它附加,但我希望刷新文件并且不包含先前程序执行的数据。而冲洗并没有帮助。

2 个答案:

答案 0 :(得分:0)

FileOutputStream API显示附加参数将...附加到文件中!所以把它改成假,或者把它关掉。

writer = new FileOutputStream(file);

答案 1 :(得分:0)

我的建议是使用FileWriter之类的

以下语法创建一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。

FileWriter(String fileName, boolean append) 

将布尔值设置为false,表示您不想进行追加。

例如

   try (PrintWriter out = new PrintWriter(new FileWriter("login.txt", false));) {

        for (int i = 0; i < 10; i++) {
            out.println(i);
        }

    } catch (IOException e) {
      System.out.println(e);
    }

Read About The Try-With-Resources