У меня есть веб-сервис, который на лету анализирует zip-файлы для определения их внутренней файловой структуры (имена файлов, каталоги и т. Д.) И отправляет результат обратно в виде json. Он отлично работает, за исключением того, что zip-файлы содержат очень большие файлы, и для получения ответа может потребоваться до нескольких десятков секунд, даже если в zip-файле всего несколько файлов. Я подозреваю, что алгоритм распаковки должен проанализировать весь файл, чтобы добраться до различных записей ZIP. Я использую стандартную библиотеку Java Zip. Вот некоторый основной код:
ZipInputStream zis = new ZipInputStream(new FileInputStream(new File(myFilePath)));
ZipEntry zipEntry = zis.getNextEntry();
while(zipEntry != null){
// code to generate the json file tree ---
// --- end of code
zipEntry = zis.getNextEntry();
}
Я не читаю содержимое файлов или что-то еще, просто перебираю записи. Фактически, я мог запустить его пустым, как описано выше, и это все равно заняло бы много времени (и процессора).
Есть ли способ ускорить этот процесс? может быть, лучшая библиотека?
Спасибо!