在try-wtth-resources块中使用GZIPOutputStream对象时,是否需要调用finish()

Nat*_*tie 1 java gzipoutputstream autocloseable

在try-with-resources [autoclosable]块中使用GZipOutputStream时,我在处理完资源finish()后是否需要显式调用?

Phi*_*ler 5

不,close()离开try-with-resources块时被调用的方法调用finish(),因此您不需要手动执行此操作。

您可以在其源代码中看到它(GZipOutputStream不会覆盖close(),因此将使用close()其超类DeflaterOutptuStream中的方法)。另外,JavaDocclose()声明其“将剩余的压缩数据写入输出流”,这与finish()记录的内容相同。