尝试资源中的ObjectOutputStream

Vik*_*ron 1 java flush objectoutputstream fileoutputstream

我正在使用ObjectOutputStream将数据写入文件。以下是代码段。

try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f))) 
{
    oos.writeObject(allObjects);
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我是否需要在try-with-resources中分别拆分OOS和FOS的对象构造?我认为OOS在内部也会关闭FOS。所以上面的代码行应该没问题。
  2. 我需要显式调用冲洗吗?

文件损坏后,我看到的问题是在调试时遇到了上述查询。

小智 5

  1. 否:关闭ObjectOutputStream将自动关闭FileOutputStream

  2. 否:关闭时,流将自动刷新。