如何从Java中的字节数组创建Zip文件

时间:2012-12-28 16:29:47

标签: java zip

在Java中你必须这样做     新的ZipFile(新文件(“xxx.zip”)); 解压缩zip文件。

现在我得到一个字节数组,其内容是一个zip文件。我从数据库而不是文件中获取此字节数组。我想解压缩这个“字节数组文件”,但没有字节数组或字符串的ZipFile构造函数(我的意思是内容而不是文件路径)。

有什么解决方案吗? (当然我不想将这个字节数组写入实际文件并再次将其读入内存。)

谢谢!

2 个答案:

答案 0 :(得分:3)

在ZipInputStream中使用ByteArrayInputStream,它是从字节数组创建的

byte[] ba;

InputStream is = new ByteArrayInputStream(ba);
InputStream zis = new ZipInputStream(is);

使用zis读取未压缩的内容

答案 1 :(得分:0)

ZipFile的实现要求它是一个文件。例如,可以使用存储器映射。通常,假设存档可能很大。

如@Perception所述,ZipInputStream可用于按顺序读取流。可以使用第三方库来替换ZipFile