我的程序目前正在使用
FileOutputStream output = new FileOutputStream("output", true);
while循环会创建输出文件(如果还没有被创建),并且在每次循环迭代时使用该文件附加一些数据。
output.write(data).
这很好,也是我想要的。
如果我再次运行程序,该文件的大小会加倍,因为它将完全相同的信息附加到文件末尾。这不是我想要的。如果我再次运行程序,我希望覆盖该文件。
这份文档表明你传递的参数是append
参数。
函数签名看起来像以下内容
FileOutputStream(File file, boolean append)
由于您不想追加,所以应将该参数设置为false
。
FileOutputStream output = new FileOutputStream("output", false);
如果再次运行程序,我想覆盖文件。
将第二个参数设置为false
,以将追加设置为false:
FileOutputStream output = new FileOutputStream("output", false);
请查看构造函数文档:
如果第二个参数为true,则字节将被写入文件的末尾而不是开头。
false
。 - YTerle如果文件存在,您可以直接删除该文件,然后始终创建一个新文件,问题就解决了。
append
为false
,则可以使用File.deleteOnExit()
。请勿直接翻译机翻结果。 - Boris the Spider