Как получить содержимое отдельного файла из 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()
получить распакованные данные.