Spec-Zone.ru › OpenJDK 27

Класс InflaterInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
Все реализованные интерфейсы:
Closeable, AutoCloseable
Прямые известные подклассы:
GZIPInputStream, ZipInputStream
public class InflaterInputStream extends FilterInputStream
Этот класс реализует фильтр потока для распаковки данных в формате сжатия «deflate». Он также служит основой для других фильтров распаковки, таких как GZIPInputStream.

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

Использование декомпрессора

Экземпляр InflaterInputStream, созданный без указания декомпрессора, создаст декомпрессор во время конструирования и закроет его, когда входной поток будет закрыт.

Если при создании экземпляра InflaterInputStream указан декомпрессор, вызывающий код отвечает за то, чтобы закрыть декомпрессор после закрытия входного потока.

Примечание к API:
Для освобождения ресурсов, используемых этим потоком, следует вызвать метод close() непосредственно или использовать оператор try-with-resources.
С версии:
1.1
См. также:
  • Inflater

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

Модификатор и тип Поле Описание
protected byte[] buf
Входной буфер для распаковки.
protected Inflater inf
Декомпрессор для этого потока.
protected int len
Общее количество байтов, прочитанных во входной буфер.

Поля, объявленные в классе FilterInputStream

in
Модификатор и тип Поле Описание
protected InputStream in
Входной поток, к которому применяется фильтр.

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

Конструктор Описание
InflaterInputStream(InputStream in)
Создает новый входной поток и декомпрессор с размером буфера по умолчанию.
InflaterInputStream(InputStream in, Inflater inf)
Создает новый входной поток с указанным декомпрессором и размером буфера по умолчанию.
InflaterInputStream(InputStream in, Inflater inf, int size)
Создает новый входной поток с указанным декомпрессором и размером буфера.

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

Модификатор и тип Метод Описание
int available()
Возвращает 0 после достижения конца файла (EOF), в противном случае всегда возвращает 1.
void close()
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
protected void fill()
Заполняет входной буфер дополнительными данными для распаковки.
void mark(int readlimit)
Помечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
int read()
Читает байт несжатых данных.
int read(byte[] b, int off, int len)
Читает несжатые данные в массив байтов и возвращает количество распакованных байтов.
void reset()
Перемещает этот поток в позицию, в которой находился входной поток при последнем вызове метода mark.
long skip(long n)
Пропускает указанное количество байтов несжатых данных.

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

read
Модификатор и тип Метод Описание
int read(byte[] b)
Читает из этого входного потока в массив байтов не более b.length байтов данных.

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

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
Модификатор и тип Метод Описание
static InputStream nullInputStream()
Возвращает новый InputStream, который не читает байты.
byte[] readAllBytes()
Читает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Читает из входного потока запрошенное количество байтов в указанный массив байтов.
byte[] readNBytes(int len)
Читает из входного потока не более указанного количества байтов.
void skipNBytes(long n)
Пропускает и отбрасывает из этого входного потока ровно n байтов данных.
long transferTo(OutputStream out)
Читает все байты из этого входного потока и записывает их в указанный выходной поток в порядке чтения.

Методы, объявленные в классе 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()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

inf

protected Inflater inf
Декомпрессор для этого потока.

buf

protected byte[] buf
Входной буфер для распаковки.

len

protected int len
Общее количество байтов, прочитанных во входной буфер.

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

InflaterInputStream

public InflaterInputStream(InputStream in, Inflater inf, int size)
Создает новый входной поток с указанным декомпрессором и размером буфера.

При закрытии этого входного потока указанный декомпрессор не будет закрыт.

Параметры:
in — входной поток
inf — декомпрессор («inflater»)
size — размер входного буфера
Выбрасывает:
IllegalArgumentException — если size <= 0

InflaterInputStream

public InflaterInputStream(InputStream in, Inflater inf)
Создает новый входной поток с указанным декомпрессором и размером буфера по умолчанию.

При закрытии этого входного потока указанный декомпрессор не будет закрыт.

Параметры:
in — входной поток
inf — декомпрессор («inflater»)

InflaterInputStream

public InflaterInputStream(InputStream in)
Создает новый входной поток и декомпрессор с размером буфера по умолчанию.

Декомпрессор будет закрыт, когда этот входной поток будет закрыт.

Параметры:
in — входной поток

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

read

public int read() throws IOException
Читает байт несжатых данных. Этот метод будет блокировать выполнение, пока не появится достаточно данных для распаковки.
Переопределяет:
read в классе FilterInputStream
Возвращает:
прочитанный байт или -1, если достигнут конец сжатых данных
Выбрасывает:
IOException — если произошла ошибка ввода-вывода
См. также:
  • FilterInputStream.in

read

public int read(byte[] b, int off, int len) throws IOException
Читает несжатые данные в массив байтов и возвращает количество распакованных байтов. Если значение len не равно нулю, метод будет блокировать выполнение, пока не появятся данные для распаковки; в противном случае байты не считываются, и возвращается 0.

Если этот метод возвращает ненулое целое число n, то buf[off] — buf[off+n-1] содержат несжатые данные. Содержимое элементов buf[off+n] — buf[off+len-1] не определено, вопреки спецификации суперкласса InputStream, поэтому реализация может изменять эти элементы во время распаковки. Если этот метод возвращает -1 или выбрасывает исключение, содержимое элементов buf[off] — buf[off+len -1] не определено.

Переопределяет:
read в классе FilterInputStream
Параметры:
b — буфер, в который считываются данные
off — начальное смещение в целевом массиве b
len — максимальное количество считываемых байтов
Возвращает:
фактическое количество распакованных байтов или -1, если достигнут конец сжатых данных либо требуется предустановленный словарь
Выбрасывает:
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off
ZipException — если произошла ошибка формата ZIP
IOException — если произошла ошибка ввода-вывода
См. также:
  • FilterInputStream.in

available

public int available() throws IOException
После достижения конца файла (EOF) возвращает 0, в противном случае всегда возвращает 1.

Программы не должны рассчитывать на то, что этот метод вернет фактическое количество байтов, которые можно прочитать без блокировки.

Переопределяет:
available в классе FilterInputStream
Возвращает:
1 до конца файла (EOF) и 0 после него.
Выбрасывает:
IOException — если произошла ошибка ввода-вывода.

skip

public long skip(long n) throws IOException
Пропускает указанное количество байтов несжатых данных. Этот метод может блокировать выполнение, пока не будет пропущено указанное количество байтов или не будет достигнут конец потока.
Переопределяет:
skip в классе FilterInputStream
Примечание по реализации:
Этот метод пропускает не более Integer.MAX_VALUE байтов.
Параметры:
n — количество байтов для пропуска. Если n равно нулю, байты не пропускаются.
Возвращает:
фактическое количество пропущенных байтов, которое может быть равно нулю
Выбрасывает:
IOException — если произошла ошибка ввода-вывода или этот поток уже закрыт
IllegalArgumentException — если n < 0
См. также:
  • InputStream.skipNBytes(long)

close

public void close() throws IOException
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Переопределяет:
close в классе FilterInputStream
Выбрасывает:
IOException — если произошла ошибка ввода-вывода
См. также:
  • FilterInputStream.in

fill

protected void fill() throws IOException
Заполняет входной буфер дополнительными данными для распаковки.
Требования к реализации:
Этот метод считывает во входной буфер не более buf.length байтов, начиная с элемента 0, и помещает их в buf. Полю len присваивается количество прочитанных байтов.
Выбрасывает:
IOException — если произошла ошибка ввода-вывода
EOFException — если неожиданно достигнут конец входного потока

markSupported

public boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset. Метод markSupported класса InflaterInputStream возвращает false.
Переопределяет:
markSupported в классе FilterInputStream
Возвращает:
значение boolean, указывающее, поддерживает ли этот тип потока методы mark и reset.
См. также:
  • InputStream.mark(int)
  • InputStream.reset()

mark

public void mark(int readlimit)
Помечает текущую позицию в этом входном потоке.
Переопределяет:
mark в классе FilterInputStream
Требования к реализации:
Метод mark класса InflaterInputStream ничего не делает.
Параметры:
readlimit — максимальное количество байтов, которое можно прочитать до того, как позиция метки станет недействительной.
См. также:
  • InputStream.reset()

reset

public void reset() throws IOException
Перемещает этот поток в позицию, в которой находился входной поток при последнем вызове метода mark.
Переопределяет:
reset в классе FilterInputStream
Требования к реализации:
Метод reset класса InflaterInputStream ничего не делает, кроме выброса исключения IOException.
Выбрасывает:
IOException — если вызван этот метод.
См. также:
  • InputStream.mark(int)
  • IOException

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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