Как получить содержимое отдельного файла из ZipArchiveInputStream с помощью библиотеки сжатия Apache commons

У меня есть org.apache.commons.compress.archivers.zip.ZipArchiveInputStream Object, из которого я могу получить каждый элемент ArchiveEntry и получить метаданные отдельного файла. Но мне нужно знать, как получить содержимое каждого файла как Blob.

С помощью org.apache.commons.compress.archivers.zip.ZipFile это можно сделать, но ZipFile имеет конструкторы с физическим или временным объектом File или расположением файла. Я не хочу создавать временный файл для этого.

Даже если есть способ конвертировать ZipArchiveInputStream в ZipFile, это косвенно решит проблему.

Короче говоря, мое требование - прочитать Zip-файл из InputStream/Blob и сохранить отдельные файлы как BLOB в базе данных.

К вашему сведению: я использую org.apache.commons:: commons-compress:: 1.4.1

Любые решения / идеи / предложения высоко ценятся.

Ура кум

1 ответ

Возможно, вы могли бы использовать стандартный java.util.zip.ZipInputStream - у него есть конструктор для InputStream. ты можешь использовать getNextEntry() / closeEntry() перебирать записи и read() получить распакованные данные.

Другие вопросы по тегам