Работа с файлами: Архивирование файлов
Для архивирования файлов есть классы ZipOutputStream
Он содержит в себе контент в виде последовательности байт, и блоки байт помечены метками, которые имеют класс ZipEntry.
Процедура записи файлов в архив выглядит следующим образом:
1 Открываем поток записи архива ZipOutputStream
2 Ставим метку блока ZipEntry
3 Записываем байты
4 Повторяем п.2 и п.3 если несколько файлов
5 Закрываем поток записи архива
Для чтения данных из архива используется класс ZipInputStream
Для удобства можно использовать класс ZipFile
методов entries() — можно получить все метки файлов в файле
Процедура чтения выглядит следующим образом:
Перебирая метки в файле получаем входящий поток из ZipFile по метке
zipFile.getInputStream(entry)
Считываем массив байт из этого потока и получаем файл.
В архиве также могут содержаться директории. Все зависит от ZipEntry. Они создаются автоматически.