Библиотека ввода/вывода Java содержит классы, поддерживающие чтение и запись потоков в компрессированном формате. Они являются оберткой для существующих классов ввода/вывода для обеспечения возможности компрессирования.
Эти классы не наследуются от классов Reader и Writer, а вместо этого они являются частью иерархии InputStream и OutputStream. Это происходит потому, что библиотека компрессии работает с байтами, а не с символами. Однако вы можете иногда встретить необходимость смешивания двух типов потоков. (Помните, что вы можете использовать InputStreamReader и OutputStreamWriter для обеспечения простой конвертации одного типа в другой.)
CheckedInputStream | GetCheckSum( ) производит контрольную сумму для любого InputStream (только не декомпрессию). |
CheckedOutputStream | GetCheckSum( ) производит контрольную сумму для любого OutputStream (только не декомпрессию). |
DeflaterOutputStream | Базовый класс для классов компрессии. |
ZipOutputStream | DeflaterOutputStream, который компрессирует данные в файл формата Zip. |
GZIPOutputStream | DeflaterOutputStream, который компрессирует данные в файл формата GZIP. |
InflaterInputStream | Базовый класс для классов декомпрессии. |
ZipInputStream | InflaterInputStream, который декомпрессирует данные, хранящиеся в файле формата Zip. |
GZIPInputStream | InflaterInputStream, который декомпрессирует данные, хранящиеся в файле формата GZIP. |
Хотя существует много алгоритмов компрессии, Zip и GZIP, вероятно, наиболее часто используемые. Поэтому вы можете легко манипулировать вашими компрессированными данными с помощью многих инструментов, существующих для чтения и записи этих форматов.