在Java中你必须这样做 新的ZipFile(新文件(“xxx.zip”)); 解压缩zip文件。
现在我得到一个字节数组,其内容是一个zip文件。我从数据库而不是文件中获取此字节数组。我想解压缩这个“字节数组文件”,但没有字节数组或字符串的ZipFile构造函数(我的意思是内容而不是文件路径)。
有什么解决方案吗? (当然我不想将这个字节数组写入实际文件并再次将其读入内存。)
谢谢!
答案 0 :(得分:3)
在ZipInputStream中使用ByteArrayInputStream,它是从字节数组创建的
byte[] ba;
InputStream is = new ByteArrayInputStream(ba);
InputStream zis = new ZipInputStream(is);
使用zis读取未压缩的内容
答案 1 :(得分:0)
ZipFile
的实现要求它是一个文件。例如,可以使用存储器映射。通常,假设存档可能很大。
如@Perception所述,ZipInputStream
可用于按顺序读取流。可以使用第三方库来替换ZipFile
。