2015-02-23 3 views
0

У меня есть приложение (spring-mvc), и я хочу разархивировать файл, но я хочу поймать файлы, которые находятся внутри, и иметь возможность работать с ними без сохранения zip-файла, ни файлов, которые он имеет (zip-файл).Unzip через CommonsMultipartFile

Нечто подобное

... 
ZipFile zipFile = new ZipFile("file.zip"); 
Enumeration<?> enu = zipFile.entries(); 
while (enu.hasMoreElements()) { 
    ZipEntry zipEntry = (ZipEntry) enu.nextElement(); 
    InputStream is = zipFile.getInputStream(zipEntry); 
} 
... 

Но у меня есть почтовый файл ("file.zip") через из CommonsMultipartFile (весна-MVC) и нет диска

Как я могу это сделать?

Спасибо.

ответ

0

Если вы не хотите сохранять содержимое zipfile во временный файл, вы можете прочитать его, используя ZipInputStream.

ZipInputStream zis = new ZipInputStream(multipartFile.getInputStream()); 
ZipEntry ze; 
while ((ze = zis.getNextEntry()) != null) { 
    // process entry 
} 
+0

Спасибо за ваш ответ, но если я хочу, чтобы получить InputStream каждой записи с ZipEntry у меня нет его, и то, что я хочу быть, – Celer

+0

@Celer Добавлен фрагмент кода. – holmis83

+0

Но ZipFile не является inputStream, и я хочу знать, как сделать, чтобы получить InputStream из ZipFile. – Celer