如何递归遍历ZipEntry

时间:2015-02-10 23:13:30

标签: java zip zipfile

我在zip文件中有一个zip文件。所以我需要以递归方式解压缩。输入以字节数组形式出现

zis = new ZipInputStream(new ByteArrayInputStream((byte[])byteArray));
while((entry = zis.getNextEntry()) != null)
{
processZip(entry, byteArray);
}

在processZip(entry,byteArray)中,我正在阅读单个条目。当条目值是zip文件时,我如何处理它。如何将zipentry对象转换为Zipfile或通过它进行枚举?

1 个答案:

答案 0 :(得分:1)

您需要调整processZip()以将ZipInputStream作为InputStream参数,而不是字节数组。在内部,它应该围绕ZipInputStream构建另一个InputStream并执行您在此处所做的事情。

NB为什么拥有字节数组?您应该直接从源读取ZipInputStream:套接字,文件,等等。不要将文件加载到内存中。