Мне кажется у Вас небольшая проблема с исходными данными.
Судя по скриншоту у Вас почти одинаковые строчки в базе, а насколько мне помнится алгоритмы 7z и zip по умолчанию используют словарное сжатие, поэтому у вас со 198Мб порезалось до 3/10. Боюсь с реальными данными все не будет столь радужно…
Хм. Все ZipEntry распаковываются в один файл. Если в архиве будет больше одного файла они сольются в один.
Приведенный пример не совсем корректен. Под каждый ZipEntry нужно создавать отдельные файлы. А еще ZipEntry бывают директорией и это тоже нужно учитывать.
Все верно у ZipEntry есть свойство isDirectory(). Еще можно было рассказать про размер буфера копирования, т.к. его теоретически можно оптимизировать, но на стеке рассказали что овчинка выделки не стоит.
Если все верно, почему в статье я этого не вижу? И я не про свойство isDirectory. В статье есть более существенный недостаток о котором я написал выше. Кстати, у 7z такая же проблема.
Заглянул в доки org.apache.commons.compress.archivers.sevenz. До чего же однобоко они сделали работу с 7z. Почему нельзя было сделать чтение из InputStreem как и в остальных случаях?
Работа с архивами Zip и 7z