Работа с ZipInputStream - PullRequest
       53

Работа с ZipInputStream

1 голос
/ 05 января 2012

В настоящее время я пытаюсь создать менеджер загрузок (DLManager), который позволяет отправлять ссылки на онлайн-файлы, и он отслеживает ход всех загрузок.Я отлично работаю с обычными файлами, но я хотел добавить возможность загружать и распаковывать zip-файлы.Я получил его для работы с двумя основными шагами: инициализация, а затем загрузка.Процесс инициализации устанавливает zipInputStream и собирает информацию о файле для архива, используя FileEntry.getName и .getSize.Используя эту информацию, я могу рассчитать общий размер загрузки очереди и любой предыдущий прогресс для возобновленных загрузок.Когда очередь DLManager устанавливает связь, она начинает этап загрузки, устанавливая другой zipInputStream и используя метод .read для вывода файлов на диск.

Проблема, с которой я сталкиваюсь, заключается в том, что при инициализации файловэто займет много времени.Я могу загрузить более трех больших видеофайлов за время, необходимое для инициализации одного zip-файла.Я не понимаю, как работает zipInputStream.Это просто потоковая информация заголовка, а затем ожидание команды .read для загрузки остальной части или же загрузка всего архива перед возвратом информации заголовка?Если он загружает все сразу, есть ли способ повторно использовать zipInputStream (вернуться к первой записи)?Я пытался зайти так далеко, чтобы прочитать исходный код для zipInputStream, но потерял.Я был бы благодарен всем, кто может пролить свет на эту проблему.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...