Работа с файлами: Архивирование файлов

07. июня 2016 JAVA 0

Для архивирования файлов есть классы ZipOutputStream

Он содержит в себе контент в виде последовательности байт, и блоки байт помечены метками, которые имеют класс ZipEntry.

Процедура записи файлов в архив выглядит следующим образом:

1 Открываем поток записи архива ZipOutputStream

2 Ставим метку блока ZipEntry

3 Записываем байты

4 Повторяем п.2 и п.3 если несколько файлов

5 Закрываем поток записи архива

Для чтения данных из архива используется класс ZipInputStream

Для удобства можно использовать класс ZipFile

методов entries() — можно получить все метки файлов в файле

Процедура чтения выглядит следующим образом:

Перебирая метки в файле получаем входящий поток из ZipFile по метке

zipFile.getInputStream(entry)

Считываем массив байт из этого потока и получаем файл.

 

В архиве также могут содержаться директории. Все зависит от ZipEntry. Они создаются автоматически.