Java覆盖现有的输出文件

时间:2013-07-30 21:34:18

标签: java append overwrite

我的程序目前正在使用

FileOutputStream output = new FileOutputStream("output", true);

如果尚未创建输出文件,则while循环会创建输出文件,并使用

为while循环的每次迭代将一些数据附加到此文件
 output.write(data).  

这很好,就是我想要的。

如果我再次运行该程序,该文件的大小只会翻倍,因为它会将确切的信息附加到文件的末尾。这不是我想要的。如果我再次运行程序,我想覆盖该文件。

3 个答案:

答案 0 :(得分:21)

This documentation表示您传递的参数是append参数。

签名如下所示

FileOutputStream(File file, boolean append)

您应该将该参数设置为false,因为您不想附加。

FileOutputStream output = new FileOutputStream("output", false);

答案 1 :(得分:13)

  

如果我再次运行程序,我想覆盖该文件。

false作为第二个参数传递,将追加设置为false:

FileOutputStream output = new FileOutputStream("output", false);

查看constructor documentation

  

如果第二个参数为true,则字节将写入文件的末尾而不是开头。

答案 2 :(得分:0)

或者你可以删除文件,如果它在那里,然后总是创建它并完成工作。