2015-02-10 3 views
0

У меня есть zip-файл внутри zip-файла. Поэтому мне нужно будет рекурсивно unzip.The вход приходит в виде байтового массиваКак цитировать через ZipEntry рекурсивно

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

Внутри processZip (запись, ByteArray,) я читаю отдельные записи. Как я обрабатываю его, когда значение записи является zip-файлом. Как я могу преобразовать объект zipentry в Zipfile или перечислить его?

ответ

1

Вам необходимо настроить processZip(), чтобы принять ZipInputStream как параметр InputStream, а не массив байтов. Внутренне он должен построить еще один ZipInputStream вокруг этого InputStream и делать то, что вы здесь делаете.

NB Почему у вас есть a byte array? Вы должны прочитать ZipInputStream прямо из источника: сокет, файл, что угодно. Не загружайте файлы в память.

Смежные вопросы