是
final OutputStream output = new FileOutputStream(file);
截断文件
如果它已经存在?令人惊讶的是,API documentation for Java 6不说。 API documentation for Java 7 也没有. specification for the language itself FileOutputStream
类的语义没有什么可说的。
我知道
final OutputStream output = new FileOutputStream(file, true);
导致附加到文件。但是附加和截断并不是唯一的可能性。如果将 100 字节写入 1000 字节的文件,一种可能性是最后的 900 字节保持原样。
最佳答案
FileOutputStream
没有 append
选项会截断文件。
请注意 FileOutputStream
打开一个 Stream,而不是一个随机访问文件,所以我想它的行为方式确实有意义,尽管我同意文档可以更明确一点。
关于java - FileOutputStream 是否截断现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387567/