在try-with-resources [autoclosable]块中使用GZipOutputStream时,在完成资源后是否需要显式调用finish()
?
答案 0 :(得分:4)
不,离开try-with-resources块时调用的close()
方法会调用finish()
,因此您无需手动执行此操作。
您可以在source code中看到这一点(GZipOutputStream
不会覆盖close()
,因此会使用其超级close()
中的DeflaterOutptuStream
方法。此外,JavaDoc of close()
表示它“将剩余的压缩数据写入输出流”,这与finish()
相同。