我有在servlet中创建zip文件的代码,如下所示:

ByteArrayOutputStream baos =null;
baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
for(list  of file){
    bis = new BufferedInputStream(new FileInputStream(("somefile.extn"));

    other code for add entry in zip file

    bis.close();
}
baos.flush();
zos.flush();
zos.close();
baos.close();

// Return bytes

baos.toByteArray();

// Write bytes to ServletOutputStream


如果我刷新并关闭ByteArrayOutputStream对象(baos),是否有任何问题。

谢谢你在这里看:)

最佳答案

这是多余的。所有你需要的是

zos.close();


关闭ZipOutputStream会刷新并关闭它所包裹的所有其他流。请参阅Javadoc。

您甚至不需要ByteArrayOutputStream.您应该将ZipOutputStream直接连接到servlet输出流。

关于java - java:创建zip文件时刷新流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29943304/

10-09 00:23