我有像这样在 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:创建zip文件时刷新流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29943304/