Java 覆盖现有输出文件

2022-09-02 11:32:22

我的程序当前正在使用

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

如果尚未创建输出文件,则 while 循环将创建该文件,并在 while 循环的每次迭代中将一些数据追加到此文件中,使用

 output.write(data).  

这很好,也是我想要的。

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


答案 1

本文档建议您要传递的参数是该参数。append

签名如下所示

FileOutputStream(File file, boolean append)

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

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

答案 2

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

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

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

请查看构造函数文档

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