Spec-Zone .ru
спецификации, руководства, описания, API
|
public class Deflater extends Object
Следующий фрагмент кода демонстрирует тривиальное сжатие и распаковку строки, используя Deflater и Inflater.
try { // Encode a String into bytes String inputString = "blahblahblah"; byte[] input = inputString.getBytes("UTF-8"); // Compress the bytes byte[] output = new byte[100]; Deflater compresser = new Deflater(); compresser.setInput(input); compresser.finish(); int compressedDataLength = compresser.deflate(output); compresser.end(); // Decompress the bytes Inflater decompresser = new Inflater(); decompresser.setInput(output, 0, compressedDataLength); byte[] result = new byte[100]; int resultLength = decompresser.inflate(result); decompresser.end(); // Decode the bytes into a String String outputString = new String(result, 0, resultLength, "UTF-8"); } catch(java.io.UnsupportedEncodingException ex) { // handle } catch (java.util.zip.DataFormatException ex) { // handle }
Inflater
Модификатор и Тип | Поле и Описание |
---|---|
static int |
BEST_COMPRESSION
Уровень сжатия для лучшего сжатия.
|
static int |
BEST_SPEED
Уровень сжатия для самого быстрого сжатия.
|
static int |
DEFAULT_COMPRESSION
Уровень сжатия по умолчанию.
|
static int |
DEFAULT_STRATEGY
Стратегия сжатия по умолчанию.
|
static int |
ВЫКАЧАННЫЙ
Метод сжатия для выкачивать алгоритма (единственный, в настоящий момент поддерживаемый).
|
static int |
ФИЛЬТРУЕМЫЙ
Стратегия сжатия, лучше всего используемая для данных, состоящих главным образом из маленьких значений с несколько случайным распределением.
|
static int |
FULL_FLUSH
Режим сброса сжатия, используемый, чтобы спугнуть весь вывод ожидания и сбросить deflater.
|
static int |
HUFFMAN_ONLY
Стратегия сжатия Кодирования методом Хаффмана только.
|
static int |
NO_COMPRESSION
Уровень сжатия ни для какого сжатия.
|
static int |
NO_FLUSH
Режим сброса сжатия, используемый, чтобы достигнуть лучшего результата сжатия.
|
static int |
SYNC_FLUSH
Режим сброса сжатия, используемый, чтобы спугнуть весь вывод ожидания; может ухудшить сжатие для некоторых алгоритмов сжатия.
|
Конструктор и Описание |
---|
Deflater()
Создает новый компрессор с уровнем сжатия по умолчанию.
|
Deflater(int level)
Создает новый компрессор, используя указанный уровень сжатия.
|
Deflater(int level, boolean nowrap)
Создает новый компрессор, используя указанный уровень сжатия.
|
Модификатор и Тип | Метод и Описание |
---|---|
int |
deflate(byte[] b)
Сжимает входные данные и заливки определенный буфер со сжатыми данными.
|
int |
deflate(byte[] b, int off, int len)
Сжимает входные данные и заливки определенный буфер со сжатыми данными.
|
int |
deflate(byte[] b, int off, int len, int flush)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
|
void |
end()
Закрывает компрессор и отбрасывает любой необработанный ввод.
|
protected void |
finalize()
Закрывает компрессор, когда мусор собирается.
|
void |
finish()
Когда вызвано, указывает, что сжатие должно закончиться текущим содержанием входного буфера.
|
boolean |
finished()
Возвращает true, если конец сжатого потока вывода данных был достигнут.
|
int |
getAdler()
Возвращает значение ADLER-32 несжатых данных.
|
long |
getBytesRead()
Возвращает общее количество несжатого ввода байтов до сих пор.
|
long |
getBytesWritten()
Возвращает общее количество сжатого вывода байтов до сих пор.
|
int |
getTotalIn()
Возвращает общее количество несжатого ввода байтов до сих пор.
|
int |
getTotalOut()
Возвращает общее количество сжатого вывода байтов до сих пор.
|
boolean |
needsInput()
Возвращает true, если входной буфер данных пуст, и setInput () нужно вызвать, чтобы обеспечить более ввод.
|
void |
reset()
Сбросы deflater так, чтобы мог быть обработан новый набор входных данных.
|
void |
setDictionary(byte[] b)
Предварительно установленный словарь наборов для сжатия.
|
void |
setDictionary(byte[] b, int off, int len)
Предварительно установленный словарь наборов для сжатия.
|
void |
setInput(byte[] b)
Входные данные наборов для сжатия.
|
void |
setInput(byte[] b, int off, int len)
Входные данные наборов для сжатия.
|
void |
setLevel(int level)
Устанавливает текущий уровень сжатия в указанное значение.
|
void |
setStrategy(int strategy)
Устанавливает стратегию сжатия в указанное значение.
|
public static final int DEFLATED
public static final int NO_COMPRESSION
public static final int BEST_SPEED
public static final int BEST_COMPRESSION
public static final int DEFAULT_COMPRESSION
public static final int FILTERED
public static final int HUFFMAN_ONLY
public static final int DEFAULT_STRATEGY
public static final int NO_FLUSH
deflate(byte[], int, int, int)
, Постоянные Значения полейpublic static final int SYNC_FLUSH
deflate(byte[], int, int, int)
, Постоянные Значения полейpublic static final int FULL_FLUSH
deflate(byte[], int, int, int)
, Постоянные Значения полейpublic Deflater(int level, boolean nowrap)
level
- уровень (0-9) сжатияnowrap
- если истина тогда использует совместимое сжатие GZIPpublic Deflater(int level)
level
- уровень (0-9) сжатияpublic Deflater()
public void setInput(byte[] b, int off, int len)
b
- входные байты данныхoff
- смещение запуска данныхlen
- длина данныхneedsInput()
public void setInput(byte[] b)
b
- входные байты данныхneedsInput()
public void setDictionary(byte[] b, int off, int len)
b
- байты данных словаряoff
- смещение запуска данныхlen
- длина данныхInflater.inflate(byte[], int, int)
, Inflater.getAdler()
public void setDictionary(byte[] b)
b
- байты данных словаряInflater.inflate(byte[], int, int)
, Inflater.getAdler()
public void setStrategy(int strategy)
strategy
- новая стратегия сжатияIllegalArgumentException
- если стратегия сжатия недопустимаpublic void setLevel(int level)
level
- новый уровень (0-9) сжатияIllegalArgumentException
- если уровень сжатия недопустимpublic boolean needsInput()
public void finish()
public boolean finished()
public int deflate(byte[] b, int off, int len)
needsInput
должен быть вызван, чтобы определить, требуются ли более входные данные. Этот метод использование NO_FLUSH
как его режим сброса сжатия. Вызов этого метода формы deflater.deflate(b, off, len)
приводит к тому же самому результату как вызов deflater.deflate(b, off, len, Deflater.NO_FLUSH)
.
b
- буфер для сжатых данныхoff
- смещение запуска данныхlen
- максимальное количество байтов сжатых данныхpublic int deflate(byte[] b)
needsInput
должен быть вызван, чтобы определить, требуются ли более входные данные. Этот метод использование NO_FLUSH
как его режим сброса сжатия. Вызов этого метода формы deflater.deflate(b)
приводит к тому же самому результату как вызов deflater.deflate(b, 0, b.length, Deflater.NO_FLUSH)
.
b
- буфер для сжатых данныхpublic int deflate(byte[] b, int off, int len, int flush)
Режим сброса сжатия является одним из следующих трех режимов:
NO_FLUSH
: позволяет deflater решать, сколько данных, чтобы накопиться, прежде, чем произвести вывод, чтобы достигнуть лучшего сжатия (должен использоваться в сценарии нормальной эксплуатации). Возвращаемое значение 0 в этом режиме сброса указывает на это needsInput()
должен быть вызван, чтобы определить, требуются ли более входные данные. SYNC_FLUSH
: весь вывод ожидания в deflater сбрасывается к указанному буферу вывода, так, чтобы инфлятор, который работает над сжатыми данными, мог до сих пор получать все входные доступные данные (В особенности needsInput()
возвраты true
после этого вызова, если достаточно выходного пространства обеспечивается). Сбрасывание с SYNC_FLUSH
может ухудшить сжатие для некоторых алгоритмов сжатия и таким образом, оно должно использоваться только когда необходимо. FULL_FLUSH
: как весь вывод ожидания спугивают с SYNC_FLUSH
. Состояние сжатия сбрасывается так, чтобы инфлятор, который работает над сжатыми выходными данными, мог перезапустить от этой точки, если предыдущие сжатые данные были повреждены или если произвольный доступ требуется. Используя FULL_FLUSH
слишком часто может серьезно ухудшать сжатие. В случае FULL_FLUSH
или SYNC_FLUSH
, если возвращаемое значение len
, пространство, доступное в буфере вывода b
, этот метод должен быть вызван снова с тем же самым flush
параметр и более выходное пространство.
b
- буфер для сжатых данныхoff
- смещение запуска данныхlen
- максимальное количество байтов сжатых данныхflush
- режим сброса сжатияIllegalArgumentException
- если режим сброса недопустимpublic int getAdler()
public int getTotalIn()
Так как число байтов может быть больше чем Целое число. MAX_VALUE, getBytesRead()
метод является теперь привилегированными средствами получения этой информации.
public long getBytesRead()
public int getTotalOut()
Так как число байтов может быть больше чем Целое число. MAX_VALUE, getBytesWritten()
метод является теперь привилегированными средствами получения этой информации.
public long getBytesWritten()
public void reset()
public void end()
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.