我正在使用ObjectOutputStream
将数据写入文件。以下是代码段。
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f)))
{
oos.writeObject(allObjects);
}
问题:
问题是我看到文件损坏后,在调试时我有上面提到的查询。
答案 0 :(得分:4)
没有: 关闭ObjectOutputStream将自动关闭FileOutputStream
没有: 流将在关闭时自动刷新。
答案 1 :(得分:0)
我相信开发人员应该依赖已发布的总合同。
没有证据表明ObjectOutputStream
的{{1}}方法调用close()
。
我相信OpenJDK的flush()
只是一个供应商实现。
如果刷新try-with-resources,也不会造成伤害。
ObjectOutputStream#close