Прошло много времени с тех пор, как я выполнил ввод / вывод Java, и я не знаю последних "правильных" способов работы с файлами Zip и GZip.Мне не обязательно нужна полная рабочая демонстрация - я в первую очередь ищу подходящие интерфейсы и методы для использования.Да, я мог бы найти любой случайный учебник по этому вопросу, но производительность - это проблема (эти файлы могут стать довольно большими), и я забочусь о том, чтобы использовать лучший инструмент для этой работы.
Основной процесс, которым я буду заниматьсябыть реализующим:
- Загрузите набор файлов (которые могут быть сжаты, сжаты или оба) во временную папку.
- Добавьте все извлеченные файлы в новый файл ZIP ввременная папка.
Входные файлы могут быть сжаты и заархивированы более одного раза.Например, «полное извлечение» должно принимать любой из следующих входных данных (я не контролирую их) и оставлять после себя foo.txt
:
foo.txt.gz
foo.txt.zip
foo.txt.gz.zip
foo.txt.zip.gz
- ...
foo.txt.gz.gz.gz.zip.gz.zip.zip.gz.gz
- ...
Тогда у меня могут остаться foo.txt
, bar.mp3
, baz.exe
- так что я бы просто добавил их все в новый zip-файл с некоторым общим именем.
Вопросы:
- Потенциальная проблема с размером файла, какие (интерфейсы / классы / методы) я должен использовать, чтобы быстро :
- извлечь файлы zip?
- извлекать файлы gzip?
- записывать файлы zip?
- Лучше ли мне хранить отдельные извлеченные файлы в памяти перед записью на диск?Или
- Потенциально большие файлы делают эту идею плохой?