Spec-Zone.ru › OpenJDK 25

Класс 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 с ресурсами.
Начиная с:
1.1
См. также:
  • Inflater

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

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

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

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

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

nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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
Возвращает 0 после достижения EOF; в противном случае всегда возвращает 1.

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

Переопределяет:
available в классе FilterInputStream
Возвращает:
1 до EOF и 0 после EOF.
Исключения:
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, начиная с элемента buf, под индексом 0. Поле 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/zip/InflaterInputStream.html

Spec-Zone.ru

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