Spec-Zone.ru › OpenJDK 27

Класс Deflater

java.lang.Object
java.util.zip.Deflater
Все реализуемые интерфейсы:
AutoCloseable
public class Deflater extends Object implements AutoCloseable
Этот класс поддерживает сжатие общего назначения с использованием популярной библиотеки сжатия ZLIB. Библиотека сжатия ZLIB изначально была разработана как часть графического стандарта PNG и не защищена патентами. Она полностью описана в спецификациях в описании пакета java.util.zip.

Если не указано иное, передача аргумента null методу этого класса приведёт к выбрасыванию NullPointerException.

Этот класс преобразует последовательности байтов в сжатые данные формата ZLIB. Входная последовательность байтов передаётся либо в массиве байтов, либо в ByteBuffer посредством одного из методов setInput(). Выходная последовательность байтов записывается в выходной массив байтов или ByteBuffer, переданный методам deflate().

Чтобы освободить ресурсы, используемые Deflater, приложение должно закрыть его, вызвав метод end() или close().

Примечание к API:
Этот класс реализует AutoCloseable, чтобы упростить его использование в операторе try-with-resources. Метод close() просто вызывает end().

Следующий фрагмент кода демонстрирует простое сжатие и распаковку строки с помощью Deflater и Inflater.


// Encode a String into bytes
String inputString = "blahblahblah\u20AC\u20AC";
byte[] input = inputString.getBytes(StandardCharsets.UTF_8);

// Compress the bytes
ByteArrayOutputStream compressedBaos = new ByteArrayOutputStream();
try (Deflater compressor = new Deflater()) {
    compressor.setInput(input);
    // Let the compressor know that the complete input
    // has been made available
    compressor.finish();
    // Keep compressing the input till the compressor
    // is finished compressing
    while (!compressor.finished()) {
        // Use some reasonable size for the temporary buffer
        // based on the data being compressed
        byte[] tmpBuffer = new byte[100];
        int numCompressed = compressor.deflate(tmpBuffer);
        // Copy over the compressed bytes from the temporary
        // buffer into the final byte array
        compressedBaos.write(tmpBuffer, 0, numCompressed);
    }
}

// Decompress the bytes
ByteArrayOutputStream decompressedBaos = new ByteArrayOutputStream();
try (Inflater decompressor = new Inflater()) {
    byte[] compressed = compressedBaos.toByteArray();
    decompressor.setInput(compressed, 0, compressed.length);
    while (!decompressor.finished()) {
        // Use some reasonable size for the temporary buffer,
        // based on the data being decompressed; in this example,
        // we use a small buffer size
        byte[] tmpBuffer = new byte[100];
        int numDecompressed = 0;
        try {
            numDecompressed = decompressor.inflate(tmpBuffer);
        } catch (DataFormatException dfe) {
            // Handle the exception suitably, in this example
            // we just rethrow it
            throw new RuntimeException(dfe);
        }
        // Copy over the decompressed bytes from the temporary
        // buffer into the final byte array
        decompressedBaos.write(tmpBuffer, 0, numDecompressed);
    }
}
// Decode the bytes into a String
String outputString = decompressedBaos.toString(StandardCharsets.UTF_8);

С версии:
1.1
См. также:
  • Inflater

Краткое описание полей

Модификатор и тип Поле Описание
static final int BEST_COMPRESSION
Уровень сжатия, обеспечивающий наилучшее сжатие.
static final int BEST_SPEED
Уровень сжатия, обеспечивающий наибольшую скорость сжатия.
static final int DEFAULT_COMPRESSION
Уровень сжатия по умолчанию.
static final int DEFAULT_STRATEGY
Стратегия сжатия по умолчанию.
static final int DEFLATED
Метод сжатия для алгоритма deflate (единственный поддерживаемый в настоящее время).
static final int FILTERED
Стратегия сжатия, наиболее подходящая для данных, состоящих преимущественно из небольших значений со случайным распределением.
static final int FULL_FLUSH
Режим сброса сжатия, используемый для вывода всех ожидающих данных и сброса дефлятора.
static final int HUFFMAN_ONLY
Стратегия сжатия, предназначенная только для кодирования Хаффмана.
static final int NO_COMPRESSION
Уровень сжатия без сжатия.
static final int NO_FLUSH
Режим сброса сжатия, используемый для достижения наилучшего результата сжатия.
static final int SYNC_FLUSH
Режим сброса сжатия, используемый для вывода всех ожидающих данных; может ухудшить сжатие для некоторых алгоритмов сжатия.

Краткое описание конструкторов

Конструктор Описание
Deflater()
Создаёт новый компрессор с уровнем сжатия по умолчанию.
Deflater(int level)
Создаёт новый компрессор с указанным уровнем сжатия.
Deflater(int level, boolean nowrap)
Создаёт новый компрессор с указанным уровнем сжатия.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот Deflater, освобождает удерживаемые им ресурсы и отбрасывает все необработанные входные данные.
int deflate(byte[] output)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
int deflate(byte[] output, int off, int len)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
int deflate(byte[] output, int off, int len, int flush)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
int deflate(ByteBuffer output)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
int deflate(ByteBuffer output, int flush)
Сжимает входные данные и заполняет указанный буфер сжатыми данными.
void end()
Закрывает этот Deflater, освобождает удерживаемые им ресурсы и отбрасывает все необработанные входные данные.
void finish()
При вызове указывает, что сжатие следует завершить, используя текущее содержимое входного буфера.
boolean finished()
Возвращает true, если достигнут конец потока выходных сжатых данных.
int getAdler()
Возвращает значение ADLER-32 несжатых данных.
long getBytesRead()
Возвращает общее количество байтов несжатых данных, полученных на данный момент.
long getBytesWritten()
Возвращает общее количество байтов сжатых данных, выведенных на данный момент.
int getTotalIn()
Устарело.
Вместо этого используйте getBytesRead()
int getTotalOut()
Устарело.
Вместо этого используйте getBytesWritten()
boolean needsInput()
Возвращает true, если во входном буфере не осталось данных.
void reset()
Сбрасывает дефлятор, чтобы можно было обработать новый набор входных данных.
void setDictionary(byte[] dictionary)
Устанавливает предустановленный словарь для сжатия.
void setDictionary(byte[] dictionary, int off, int len)
Устанавливает предустановленный словарь для сжатия.
void setDictionary(ByteBuffer dictionary)
Устанавливает предустановленный словарь для сжатия.
void setInput(byte[] input)
Устанавливает входные данные для сжатия.
void setInput(byte[] input, int off, int len)
Устанавливает входные данные для сжатия.
void setInput(ByteBuffer input)
Устанавливает входные данные для сжатия.
void setLevel(int level)
Устанавливает уровень сжатия в указанное значение.
void setStrategy(int strategy)
Устанавливает стратегию сжатия в указанное значение.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения указанного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения указанного промежутка реального времени.

Подробное описание полей

DEFLATED

public static final int DEFLATED
Метод сжатия для алгоритма deflate (единственный поддерживаемый в настоящее время).
См. также:
  • Значения константных полей

NO_COMPRESSION

public static final int NO_COMPRESSION
Уровень сжатия, при котором сжатие не выполняется.
См. также:
  • Значения константных полей

BEST_SPEED

public static final int BEST_SPEED
Уровень сжатия для максимально быстрого сжатия.
См. также:
  • Значения константных полей

BEST_COMPRESSION

public static final int BEST_COMPRESSION
Уровень сжатия для наилучшего сжатия.
См. также:
  • Значения константных полей

DEFAULT_COMPRESSION

public static final int DEFAULT_COMPRESSION
Уровень сжатия по умолчанию.
См. также:
  • Значения константных полей

FILTERED

public static final int FILTERED
Стратегия сжатия, наиболее подходящая для данных, состоящих преимущественно из небольших значений со случайным распределением. Она увеличивает долю кодирования Хаффмана и уменьшает долю поиска совпадений строк.
См. также:
  • Значения константных полей

HUFFMAN_ONLY

public static final int HUFFMAN_ONLY
Стратегия сжатия, использующая только кодирование Хаффмана.
См. также:
  • Значения константных полей

DEFAULT_STRATEGY

public static final int DEFAULT_STRATEGY
Стратегия сжатия по умолчанию.
См. также:
  • Значения константных полей

NO_FLUSH

public static final int NO_FLUSH
Режим сброса при сжатии, используемый для достижения наилучшего результата сжатия.
С версии:
1.7
См. также:
  • deflate(byte[], int, int, int)
  • Значения константных полей

SYNC_FLUSH

public static final int SYNC_FLUSH
Режим сброса при сжатии, используемый для сброса всех ожидающих выходных данных; может ухудшить сжатие для некоторых алгоритмов.
С версии:
1.7
См. также:
  • deflate(byte[], int, int, int)
  • Значения константных полей

FULL_FLUSH

public static final int FULL_FLUSH
Режим сброса при сжатии, используемый для сброса всех ожидающих выходных данных и сброса состояния компрессора. Слишком частое использование этого режима может значительно ухудшить сжатие.
С версии:
1.7
См. также:
  • deflate(byte[], int, int, int)
  • Значения константных полей

Подробное описание конструкторов

Deflater

public Deflater(int level, boolean nowrap)
Создает новый компрессор с указанным уровнем сжатия. Если параметр 'nowrap' имеет значение true, заголовок ZLIB и поля контрольной суммы не используются, чтобы поддержать формат сжатия, применяемый в GZIP и PKZIP.
Параметры:
level — уровень сжатия (0–9)
nowrap — если true, использовать сжатие, совместимое с GZIP

Deflater

public Deflater(int level)
Создает новый компрессор с указанным уровнем сжатия. Сжатые данные будут сформированы в формате ZLIB.
Параметры:
level — уровень сжатия (0–9)

Deflater

public Deflater()
Создает новый компрессор с уровнем сжатия по умолчанию. Сжатые данные будут сформированы в формате ZLIB.

Подробное описание методов

setInput

public void setInput(byte[] input, int off, int len)
Задает входные данные для сжатия.

Один из методов setInput() следует вызывать каждый раз, когда needsInput() возвращает true, указывая на необходимость дополнительных входных данных.

Параметры:
input — байты входных данных
off — начальное смещение данных
len — длина данных
См. также:
  • needsInput()

setInput

public void setInput(byte[] input)
Задает входные данные для сжатия.

Один из методов setInput() следует вызывать каждый раз, когда needsInput() возвращает true, указывая на необходимость дополнительных входных данных.

Параметры:
input — байты входных данных
См. также:
  • needsInput()

setInput

public void setInput(ByteBuffer input)
Задает входные данные для сжатия.

Один из методов setInput() следует вызывать каждый раз, когда needsInput() возвращает true, указывая на необходимость дополнительных входных данных.

Позиция переданного буфера будет увеличиваться по мере выполнения операций deflate, вплоть до предела буфера. Между операциями deflate входной буфер можно изменять (повторно заполнять); это эквивалентно созданию нового буфера и его передаче этому методу.

Одновременное изменение содержимого, позиции или предела входного буфера во время операции deflate приводит к неопределенному поведению, которое может включать неверные результаты операции или ее сбой.

Параметры:
input — байты входных данных
С версии:
11
См. также:
  • needsInput()

setDictionary

public void setDictionary(byte[] dictionary, int off, int len)
Задает предварительно установленный словарь для сжатия. Предварительно установленный словарь используется, если буфер истории можно определить заранее. При последующей распаковке данных с помощью Inflater.inflate() можно вызвать Inflater.getAdler(), чтобы получить значение Adler-32 словаря, необходимого для распаковки.
Параметры:
dictionary — байты данных словаря
off — начальное смещение данных
len — длина данных
Исключения:
IllegalStateException — если Deflater закрыт
См. также:
  • Inflater.inflate(byte[], int, int)
  • Inflater.getAdler()

setDictionary

public void setDictionary(byte[] dictionary)
Задает предварительно установленный словарь для сжатия. Предварительно установленный словарь используется, если буфер истории можно определить заранее. При последующей распаковке данных с помощью Inflater.inflate() можно вызвать Inflater.getAdler(), чтобы получить значение Adler-32 словаря, необходимого для распаковки.
Параметры:
dictionary — байты данных словаря
Исключения:
IllegalStateException — если Deflater закрыт
См. также:
  • Inflater.inflate(byte[], int, int)
  • Inflater.getAdler()

setDictionary

public void setDictionary(ByteBuffer dictionary)
Задает предварительно установленный словарь для сжатия. Предварительно установленный словарь используется, если буфер истории можно определить заранее. При последующей распаковке данных с помощью Inflater.inflate() можно вызвать Inflater.getAdler(), чтобы получить значение Adler-32 словаря, необходимого для распаковки.

Этот метод полностью считывает байты из переданного байтового буфера. После возврата позиция буфера будет равна его пределу.

Параметры:
dictionary — байты данных словаря
Исключения:
IllegalStateException — если Deflater закрыт
С версии:
11
См. также:
  • Inflater.inflate(byte[], int, int)
  • Inflater.getAdler()

setStrategy

public void setStrategy(int strategy)
Задает стратегию сжатия, соответствующую указанному значению.

Если стратегия сжатия изменена, при следующем вызове deflate доступные на данный момент входные данные будут сжаты с использованием прежней стратегии (и, возможно, будут сброшены); новая стратегия вступит в силу только после этого вызова.

Параметры:
strategy — новая стратегия сжатия
Исключения:
IllegalArgumentException — если стратегия сжатия недопустима

setLevel

public void setLevel(int level)
Задает уровень сжатия, соответствующий указанному значению.

Если уровень сжатия изменен, при следующем вызове deflate доступные на данный момент входные данные будут сжаты с использованием прежнего уровня (и, возможно, будут сброшены); новый уровень вступит в силу только после этого вызова.

Параметры:
level — новый уровень сжатия (0–9)
Исключения:
IllegalArgumentException — если уровень сжатия недопустим

needsInput

public boolean needsInput()
Возвращает true, если во входном буфере не осталось данных. Этот метод можно использовать, чтобы определить, следует ли вызвать один из методов setInput() для передачи дополнительных входных данных.
Возвращает:
true, если буфер входных данных пуст и для передачи дополнительных данных следует вызвать setInput()

finish

public void finish()
При вызове указывает, что сжатие следует завершить с текущим содержимым входного буфера.

finished

public boolean finished()
Возвращает true, если достигнут конец потока выходных сжатых данных.
Возвращает:
true, если достигнут конец потока выходных сжатых данных

deflate

public int deflate(byte[] output, int off, int len)
Сжимает входные данные и заполняет указанный буфер сжатыми данными. Возвращает фактическое количество байтов сжатых данных. Возвращаемое значение 0 указывает, что следует вызвать needsInput, чтобы определить, требуются ли дополнительные входные данные.

Этот метод использует NO_FLUSH в качестве режима сброса при сжатии. Вызов этого метода в форме deflater.deflate(b, off, len) дает тот же результат, что и вызов deflater.deflate(b, off, len, Deflater.NO_FLUSH).

Параметры:
output — буфер для сжатых данных
off — начальное смещение данных
len — максимальное количество байтов сжатых данных
Возвращает:
фактическое количество байтов сжатых данных, записанных в выходной буфер
Исключения:
IllegalStateException — если Deflater закрыт

deflate

public int deflate(byte[] output)
Сжимает входные данные и заполняет указанный буфер сжатыми данными. Возвращает фактическое количество байтов сжатых данных. Возвращаемое значение 0 указывает, что следует вызвать needsInput, чтобы определить, требуются ли дополнительные входные данные.

Этот метод использует NO_FLUSH в качестве режима сброса при сжатии. Вызов этого метода в форме deflater.deflate(b) дает тот же результат, что и вызов deflater.deflate(b, 0, b.length, Deflater.NO_FLUSH).

Параметры:
output — буфер для сжатых данных
Возвращает:
фактическое количество байтов сжатых данных, записанных в выходной буфер
Исключения:
IllegalStateException — если Deflater закрыт

deflate

public int deflate(ByteBuffer output)
Сжимает входные данные и заполняет указанный буфер сжатыми данными. Возвращает фактическое количество байтов сжатых данных. Возвращаемое значение 0 указывает, что следует вызвать needsInput, чтобы определить, требуются ли дополнительные входные данные.

Этот метод использует NO_FLUSH в качестве режима сброса при сжатии. Вызов этого метода в форме deflater.deflate(output) дает тот же результат, что и вызов deflater.deflate(output, Deflater.NO_FLUSH).

Параметры:
output — буфер для сжатых данных
Возвращает:
фактическое количество байтов сжатых данных, записанных в выходной буфер
Исключения:
ReadOnlyBufferException — если переданный выходной буфер доступен только для чтения
IllegalStateException — если Deflater закрыт
С версии:
11

deflate

public int deflate(byte[] output, int off, int len, int flush)
Сжимает входные данные и заполняет указанный буфер сжатыми данными. Возвращает фактическое количество байтов сжатых данных.

Режим сброса при сжатии — один из следующих трех режимов:

  • NO_FLUSH: позволяет компрессору самостоятельно определить, сколько данных накапливать перед формированием выходных данных для достижения наилучшего сжатия (рекомендуется для обычного использования). Возвращаемое значение 0 в этом режиме сброса указывает, что следует вызвать needsInput(), чтобы определить, требуются ли дополнительные входные данные.
  • SYNC_FLUSH: все ожидающие выходные данные компрессора сбрасываются в указанный выходной буфер, чтобы декомпрессор, обрабатывающий сжатые данные, мог получить все доступные на данный момент входные данные (в частности, после этого вызова needsInput() возвращает true, если предоставлено достаточно места для выходных данных). Сброс с помощью SYNC_FLUSH может ухудшить сжатие для некоторых алгоритмов, поэтому его следует использовать только при необходимости.
  • FULL_FLUSH: все ожидающие выходные данные сбрасываются, как и при использовании SYNC_FLUSH. Состояние сжатия сбрасывается, чтобы декомпрессор, обрабатывающий сжатые выходные данные, мог начать обработку с этой точки, если предыдущие сжатые данные повреждены или требуется произвольный доступ. Слишком частое использование FULL_FLUSH может значительно ухудшить сжатие.

В случае FULL_FLUSH или SYNC_FLUSH, если возвращаемое значение равно len, доступное место в выходном буфере b, этот метод следует вызвать повторно с тем же параметром flush и большим объемом свободного места для выходных данных. Убедитесь, что len больше 6, чтобы маркер сброса (5 байтов) не записывался повторно в выходной буфер при каждом вызове этого метода.

Если для передачи входного буфера был вызван метод setInput(ByteBuffer), позиция входного буфера будет увеличена на количество байтов, использованных этой операцией.

Параметры:
output — буфер для сжатых данных
off — начальное смещение данных
len — максимальное количество байтов сжатых данных
flush — режим сброса при сжатии
Возвращает:
фактическое количество байтов сжатых данных, записанных в выходной буфер
Исключения:
IllegalArgumentException — если режим сброса недопустим
IllegalStateException — если Deflater закрыт
С версии:
1.7

deflate

public int deflate(ByteBuffer output, int flush)
Сжимает входные данные и заполняет указанный буфер сжатыми данными. Возвращает фактическое количество байтов сжатых данных.

Режим сброса при сжатии — один из следующих трех режимов:

  • NO_FLUSH: позволяет компрессору самостоятельно определить, сколько данных накапливать перед формированием выходных данных для достижения наилучшего сжатия (рекомендуется для обычного использования). Возвращаемое значение 0 в этом режиме сброса указывает, что следует вызвать needsInput(), чтобы определить, требуются ли дополнительные входные данные.
  • SYNC_FLUSH: все ожидающие выходные данные компрессора сбрасываются в указанный выходной буфер, чтобы декомпрессор, обрабатывающий сжатые данные, мог получить все доступные на данный момент входные данные (в частности, после этого вызова needsInput() возвращает true, если предоставлено достаточно места для выходных данных). Сброс с помощью SYNC_FLUSH может ухудшить сжатие для некоторых алгоритмов, поэтому его следует использовать только при необходимости.
  • FULL_FLUSH: все ожидающие выходные данные сбрасываются, как и при использовании SYNC_FLUSH. Состояние сжатия сбрасывается, чтобы декомпрессор, обрабатывающий сжатые выходные данные, мог начать обработку с этой точки, если предыдущие сжатые данные повреждены или требуется произвольный доступ. Слишком частое использование FULL_FLUSH может значительно ухудшить сжатие.

В случае FULL_FLUSH или SYNC_FLUSH, если возвращаемое значение равно оставшемуся месту в буфере, этот метод следует вызвать повторно с тем же параметром flush и большим объемом свободного места для выходных данных. Убедитесь, что в буфере осталось не менее 6 байтов, чтобы маркер сброса (5 байтов) не записывался повторно в выходной буфер при каждом вызове этого метода.

При успешном выполнении позиция переданного байтового буфера output будет увеличена на количество байтов, сформированных операцией, которое равно значению, возвращаемому этим методом.

Если для передачи входного буфера был вызван метод setInput(ByteBuffer), позиция входного буфера будет увеличена на количество байтов, использованных этой операцией.

Параметры:
output — буфер для сжатых данных
flush — режим сброса при сжатии
Возвращает:
фактическое количество байтов сжатых данных, записанных в выходной буфер
Исключения:
IllegalArgumentException — если режим сброса недопустим
ReadOnlyBufferException — если переданный выходной буфер доступен только для чтения
IllegalStateException — если Deflater закрыт
С версии:
11

getAdler

public int getAdler()
Возвращает значение ADLER-32 для несжатых данных.
Возвращает:
значение ADLER-32 для несжатых данных
Исключения:
IllegalStateException — если Deflater закрыт

getTotalIn

@Deprecated(since="23") public int getTotalIn()
Устарело.
Вместо этого используйте getBytesRead()
Возвращает общее количество байтов несжатых данных, полученных на данный момент.
Требования к реализации:
Этот метод возвращает значение, эквивалентное (int) getBytesRead(), и поэтому не может вернуть правильное значение, если оно больше Integer.MAX_VALUE.
Возвращает:
общее количество байтов несжатых данных, полученных на данный момент
Исключения:
IllegalStateException — если Deflater закрыт

getBytesRead

public long getBytesRead()
Возвращает общее количество байтов несжатых данных, полученных на данный момент.
Возвращает:
общее (неотрицательное) количество байтов несжатых данных, полученных на данный момент
Исключения:
IllegalStateException — если Deflater закрыт
С версии:
1.5

getTotalOut

@Deprecated(since="23") public int getTotalOut()
Устарело.
Вместо этого используйте getBytesWritten()
Возвращает общее количество байтов сжатых данных, выведенных на данный момент.
Требования к реализации:
Этот метод возвращает значение, эквивалентное (int) getBytesWritten(), и поэтому не может вернуть правильное значение, если оно больше Integer.MAX_VALUE.
Возвращает:
общее количество байтов сжатых данных, выведенных на данный момент
Исключения:
IllegalStateException — если Deflater закрыт

getBytesWritten

public long getBytesWritten()
Возвращает общее количество байтов сжатых данных, выведенных на данный момент.
Возвращает:
общее (неотрицательное) количество байтов сжатых данных, выведенных на данный момент
Исключения:
IllegalStateException — если Deflater закрыт
С версии:
1.5

reset

public void reset()
Сбрасывает состояние компрессора, чтобы можно было обработать новый набор входных данных. Текущие настройки уровня и стратегии сжатия сохраняются.
Исключения:
IllegalStateException — если Deflater закрыт

end

public void end()
Закрывает этот Deflater, освобождает занятые им ресурсы и отбрасывает все необработанные входные данные.

Если Deflater уже закрыт, вызов этого метода не оказывает никакого эффекта.

Требования к реализации:
Подклассам следует переопределить этот метод для освобождения ресурсов, выделенных подклассом.
См. также:
  • close()

close

public void close()
Закрывает этот Deflater, освобождает занятые им ресурсы и отбрасывает все необработанные входные данные.
Определено в:
close в интерфейсе AutoCloseable
Требования к реализации:
Этот метод вызывает метод end().
С версии:
25

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API