[英]ObjectOutputStream in try-with-resources
我正在使用ObjectOutputStream
将数据写入文件。 以下是代码片段。
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f)))
{
oos.writeObject(allObjects);
}
问题:
问题是我在文件损坏后看到的问题,在调试时我遇到了上述查询。
否:关闭 ObjectOutputStream 会自动关闭 FileOutputStream
否:流将在关闭时自动刷新。
我认为开发商应该依赖公布的总合同。
没有证据表明ObjectOutputStream
的close()
方法调用了flush()
。
我相信 OpenJDK 的ObjectOutputStream#close
只是一个供应商实现。
如果我们刷新 try-with-resources 也不会造成伤害。
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f))) {
oos.writeObject(allObjects);
oos.flush(); // What's possibly going wrong with this?
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.