使用Java将ZipoutStream存储到zip文件
我必须在内存中创建ZIP存档 但现在,我需要把它保存在一个真实的世界里。磁盘中的zip文件。怎么做? 伪代码:
public byte[] crtZipByteArray(ByteArrayInputStream data,ZipEntry entry) throws IOException{
ByteArrayOutputStream zipout = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(zipout);
byte[] buffer = new byte[1024];
int len;
zos.putNextEntry(entry);
while ((len = data.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
zos.closeEntry();
zos.close();
data.close();
return zipout.toByteArray();
}
# 1 楼答案
将
ByteArrayOutputStream zipout
替换为FileOutputStream zipout
如果需要将字节数组作为方法结果返回,请使用ApacheCommons
TeeOutputStream
为两个流复制输出