Для работы со сжатыми потоками в Java используются классы из пакетов java.util.zip и java.util.jar.
Основные классы:
GZIPInputStream и GZIPOutputStream: Для работы с форматом GZIP.ZipInputStream и ZipOutputStream: Для работы с форматом ZIP.DeflaterInputStream и DeflaterOutputStream: Используют алгоритм DEFLATE (основа GZIP и ZIP, но без метаданных).Пример чтения GZIP:
java
Пример записи в GZIP:
java
Аналогичные принципы применяются к классам ZipInputStream и ZipOutputStream, но они работают с записями внутри ZIP-архива.
Эти классы являются обертками над обычными потоками ввода/вывода (InputStream, OutputStream) и автоматически выполняют сжатие/распаковку.