首页 > 解决方案 > 我应该关闭由 ZipOutputStream 包装的 FileOutputStream

问题描述

我正在编写一个批处理,下面将在循环中多次调用。所以我想知道我是否正确关闭了资源

// 这将在循环中调用

    FileOutputStream fos = null;
    ZipOutputStream zos = null;
    try {
        fos = new FileOutputStream(zipFile);
        zos = new ZipOutputStream(fos);
     ...
     ...
     closeQuietly(zos)
     } catch(Exception e) {log.error(e.getMessage(),e);}

void closeQuietly(ZipOutputStream zos) {
        try {
            zos.closeEntry();
            zos.flush();
            zos.close();
        }
        catch(Exception e) {log.error(e.getMessage(),e);}
    }

我是否正确关闭了资源。我也需要关闭FileOutputStreamcloseQuietly()

标签: javazipfileoutputstream

解决方案


如果您查看文档,您会发现 .close() “关闭 ZIP 输出流以及被过滤的流”。

所以你应该没问题


推荐阅读