在Java中,FileOutputStream实现追加写入需构造时传入第二个boolean参数为true;append为true时内容追加至文件末尾,false则覆盖原文件;需手动处理换行,文件不存在时自动创建。

在 Java 中,FileOutputStream 实现追加写入的关键,是构造时传入 第二个 boolean 类型参数为 true,表示以追加模式打开文件。
构造函数中设置 append 参数
FileOutputStream 提供了带 append 参数的构造方法:
new FileOutputStream(String name, boolean append)new FileOutputStream(File file, boolean append)
当 append 为 true 时,写入内容会自动添加到文件末尾;为 false(或使用单参数构造)则覆盖原文件。
常见写法示例
比如向日志文件追加一行:
立即学习“Java免费学习笔记(深入)”;
try (FileOutputStream fos = new FileOutputStream("log.txt", true)) {
fos.write("新日志内容\n".getBytes(StandardCharsets.UTF_8));
}
注意:write() 方法写入的是字节,建议显式指定字符编码(如 UTF_8),避免平台默认编码导致乱码。
与 FileWriter 的区别
FileOutputStream 是字节流,适合写任意二进制或文本数据;如果只处理文本,也可用 FileWriter(字符流),其构造函数同样支持 append 参数:
new FileWriter("file.txt", true)
但 FileWriter 内部仍基于 FileOutputStream,且不指定编码时依赖系统默认编码,灵活性和可控性略低。
注意事项
追加模式下不会自动换行或添加分隔符,需手动控制格式。例如连续写入多行,要记得写 "\n" 或 System.lineSeparator()。
另外,若目标文件不存在,无论 append 是 true 还是 false,都会自动创建新文件。


















