Spec-Zone.ru › OpenJDK 27

Класс ZipInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.util.zip.InflaterInputStream
java.util.zip.ZipInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
Прямые известные подклассы:
JarInputStream
public class ZipInputStream extends InflaterInputStream
Входной поток для чтения сжатых и несжатых записей ZIP-файла из потока байтов в формате ZIP-файла.

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

Чтение записей ZIP-файла

Метод getNextEntry() используется для чтения следующей записи ZIP-файла (записи заголовка локального файла (LOC) в формате ZIP) и установки потока в позицию данных файла этой записи. Данные файла можно читать одним из методов чтения ZipInputStream, например read или readAllBytes(). Например:
  Path jar = Path.of("foo.jar");
  try (InputStream is = Files.newInputStream(jar);
       ZipInputStream zis = new ZipInputStream(is)) {
      ZipEntry ze;
      while ((ze = zis.getNextEntry()) != null) {
         var bytes = zis.readAllBytes();
         System.out.printf("Entry: %s, bytes read: %s%n", ze.getName(),
                 bytes.length);
      }
  }
Примечание к API:
Заголовок LOC содержит метаданные записи ZIP-файла. ZipInputStream не считывает заголовок центрального каталога (CEN) для записи и поэтому не имеет доступа к её метаданным, таким как внешние атрибуты файла. Если требуются сведения, хранящиеся в заголовке CEN, можно использовать ZipFile.
Начиная с:
1.1

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

Модификатор и тип Поле Описание
static final int CENATT
Смещение поля внутренних атрибутов файла в заголовке центрального каталога (CEN).
static final int CENATX
Смещение поля внешних атрибутов файла в заголовке центрального каталога (CEN).
static final int CENCOM
Смещение поля длины комментария в заголовке центрального каталога (CEN).
static final int CENCRC
Смещение поля значения CRC-32 несжатого файла в заголовке центрального каталога (CEN).
static final int CENDSK
Смещение поля номера диска начала в заголовке центрального каталога (CEN).
static final int CENEXT
Смещение поля длины дополнительных данных в заголовке центрального каталога (CEN).
static final int CENFLG
Смещение поля флагов шифрования и расшифрования в заголовке центрального каталога (CEN).
static final int CENHDR
Размер заголовка центрального каталога (CEN) в байтах (включая сигнатуру).
static final int CENHOW
Смещение поля метода сжатия в заголовке центрального каталога (CEN).
static final int CENLEN
Смещение поля размера несжатого файла в заголовке центрального каталога (CEN).
static final int CENNAM
Смещение поля длины имени файла в заголовке центрального каталога (CEN).
static final int CENOFF
Смещение поля смещения заголовка LOC в заголовке центрального каталога (CEN).
static final long CENSIG
Сигнатура заголовка центрального каталога (CEN).
static final int CENSIZ
Смещение поля размера сжатого файла в заголовке центрального каталога (CEN).
static final int CENTIM
Смещение поля времени изменения в заголовке центрального каталога (CEN).
static final int CENVEM
Смещение поля версии, создавшей файл, в заголовке центрального каталога (CEN).
static final int CENVER
Смещение поля версии, необходимой для распаковки, в заголовке центрального каталога (CEN).
static final int ENDCOM
Смещение поля длины комментария ZIP-файла в заголовке конца центрального каталога (END).
static final int ENDHDR
Размер заголовка конца центрального каталога (END) в байтах (включая сигнатуру).
static final int ENDOFF
Смещение заголовка конца центрального каталога (END) для поля смещения первого заголовка CEN.
static final long ENDSIG
Сигнатура заголовка конца центрального каталога (END).
static final int ENDSIZ
Смещение поля размера центрального каталога в байтах в заголовке конца центрального каталога (END).
static final int ENDSUB
Смещение поля числа записей на этом диске в заголовке конца центрального каталога (END).
static final int ENDTOT
Смещение поля общего числа записей в заголовке конца центрального каталога (END).
static final int EXTCRC
Смещение поля значения CRC-32 несжатого файла в дополнительном локальном заголовке (EXT).
static final int EXTHDR
Размер дополнительного локального заголовка (EXT) в байтах (включая сигнатуру).
static final int EXTLEN
Смещение поля размера несжатого файла в дополнительном локальном заголовке (EXT).
static final long EXTSIG
Сигнатура дополнительного локального заголовка (EXT).
static final int EXTSIZ
Смещение поля размера сжатого файла в дополнительном локальном заголовке (EXT).
static final int LOCCRC
Смещение поля значения CRC-32 несжатого файла в заголовке локального файла (LOC).
static final int LOCEXT
Смещение поля длины дополнительных данных в заголовке локального файла (LOC).
static final int LOCFLG
Смещение поля флага общего назначения в заголовке локального файла (LOC).
static final int LOCHDR
Размер заголовка локального файла (LOC) в байтах (включая сигнатуру).
static final int LOCHOW
Смещение поля метода сжатия в заголовке локального файла (LOC).
static final int LOCLEN
Смещение поля размера несжатого файла в заголовке локального файла (LOC).
static final int LOCNAM
Смещение поля длины имени файла в заголовке локального файла (LOC).
static final long LOCSIG
Сигнатура заголовка локального файла (LOC).
static final int LOCSIZ
Смещение поля размера сжатого файла в заголовке локального файла (LOC).
static final int LOCTIM
Смещение поля времени изменения в заголовке локального файла (LOC).
static final int LOCVER
Смещение поля версии, необходимой для распаковки, в заголовке локального файла (LOC).

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

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

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

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

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

Конструктор Описание
ZipInputStream(InputStream in)
Создаёт новый входной поток ZIP.
ZipInputStream(InputStream in, Charset charset)
Создаёт новый входной поток ZIP.

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

Модификатор и тип Метод Описание
int available()
Возвращает 0, если для текущей записи ZIP обнаружен конец потока или для текущей записи ZIP был вызван метод closeEntry(); в противном случае возвращает 1.
void close()
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
void closeEntry()
Закрывает текущую запись ZIP и устанавливает поток в позицию для чтения следующей записи.
protected ZipEntry createZipEntry(String name)
Создаёт новый объект ZipEntry для указанного имени записи.
ZipEntry getNextEntry()
Читает следующую запись ZIP-файла и устанавливает поток в начало данных записи.
int read()
Читает следующий байт данных из входного потока для текущей записи ZIP.
int read(byte[] b, int off, int len)
Читает запрошенное число байтов из входного потока в указанный байтовый массив для текущей записи ZIP и возвращает число распакованных байтов.
byte[] readAllBytes()
Читает все оставшиеся байты из входного потока для текущей записи ZIP.
int readNBytes(byte[] b, int off, int len)
Читает запрошенное число байтов из входного потока в указанный байтовый массив для текущей записи ZIP и возвращает число распакованных байтов.
byte[] readNBytes(int len)
Читает из входного потока до указанного числа байтов для текущей записи ZIP.
long skip(long n)
Пропускает и отбрасывает n байтов данных из этого входного потока для текущей записи ZIP.
void skipNBytes(long n)
Пропускает и отбрасывает ровно n байтов данных из этого входного потока для текущей записи ZIP.
long transferTo(OutputStream out)
Читает все байты из этого входного потока для текущей записи ZIP и записывает их в указанный выходной поток в порядке чтения.

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

fill, mark, markSupported, reset
Модификатор и тип Метод Описание
protected void fill()
Заполняет входной буфер дополнительными данными для распаковки.
void mark(int readlimit)
Отмечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
void reset()
Перемещает этот поток в позицию, в которой он находился при последнем вызове метода mark для этого входного потока.

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

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

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

nullInputStream
Модификатор и тип Метод Описание
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает байты.

Методы, объявленные в классе 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, либо до истечения заданного промежутка реального времени.

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

LOCSIG

static final long LOCSIG
Сигнатура заголовка локального файла (LOC).
См. также:
  • Значения константных полей

EXTSIG

static final long EXTSIG
Сигнатура заголовка дополнительного локального блока (EXT).
См. также:
  • Значения константных полей

CENSIG

static final long CENSIG
Сигнатура заголовка центрального каталога (CEN).
См. также:
  • Значения константных полей

ENDSIG

static final long ENDSIG
Сигнатура заголовка конца центрального каталога (END).
См. также:
  • Значения константных полей

LOCHDR

static final int LOCHDR
Размер заголовка локального файла (LOC) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

EXTHDR

static final int EXTHDR
Размер заголовка дополнительного локального блока (EXT) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

CENHDR

static final int CENHDR
Размер заголовка центрального каталога (CEN) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

ENDHDR

static final int ENDHDR
Размер заголовка конца центрального каталога (END) в байтах (включая сигнатуру).
См. также:
  • Значения константных полей

LOCVER

static final int LOCVER
Смещение поля версии, необходимой для извлечения данных из заголовка локального файла (LOC).
См. также:
  • Значения константных полей

LOCFLG

static final int LOCFLG
Смещение поля флагов общего назначения в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCHOW

static final int LOCHOW
Смещение поля метода сжатия в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCTIM

static final int LOCTIM
Смещение поля времени изменения в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCCRC

static final int LOCCRC
Смещение поля значения CRC-32 несжатого файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCSIZ

static final int LOCSIZ
Смещение поля размера сжатого файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCLEN

static final int LOCLEN
Смещение поля размера несжатого файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCNAM

static final int LOCNAM
Смещение поля длины имени файла в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

LOCEXT

static final int LOCEXT
Смещение поля длины дополнительных данных в заголовке локального файла (LOC).
См. также:
  • Значения константных полей

EXTCRC

static final int EXTCRC
Смещение поля значения CRC-32 несжатого файла в заголовке дополнительного локального блока (EXT).
См. также:
  • Значения константных полей

EXTSIZ

static final int EXTSIZ
Смещение поля размера сжатого файла в заголовке дополнительного локального блока (EXT).
См. также:
  • Значения константных полей

EXTLEN

static final int EXTLEN
Смещение поля размера несжатого файла в заголовке дополнительного локального блока (EXT).
См. также:
  • Значения константных полей

CENVEM

static final int CENVEM
Смещение поля версии программы, создавшей заголовок центрального каталога (CEN).
См. также:
  • Значения константных полей

CENVER

static final int CENVER
Смещение поля версии, необходимой для извлечения данных из заголовка центрального каталога (CEN).
См. также:
  • Значения константных полей

CENFLG

static final int CENFLG
Смещение поля флагов шифрования и расшифрования в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENHOW

static final int CENHOW
Смещение поля метода сжатия в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENTIM

static final int CENTIM
Смещение поля времени изменения в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENCRC

static final int CENCRC
Смещение поля значения CRC-32 несжатого файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENSIZ

static final int CENSIZ
Смещение поля размера сжатого файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENLEN

static final int CENLEN
Смещение поля размера несжатого файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENNAM

static final int CENNAM
Смещение поля длины имени файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENEXT

static final int CENEXT
Смещение поля длины дополнительных данных в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENCOM

static final int CENCOM
Смещение поля длины комментария в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENDSK

static final int CENDSK
Смещение поля номера диска, с которого начинается заголовок центрального каталога (CEN).
См. также:
  • Значения константных полей

CENATT

static final int CENATT
Смещение поля внутренних атрибутов файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENATX

static final int CENATX
Смещение поля внешних атрибутов файла в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

CENOFF

static final int CENOFF
Смещение поля смещения заголовка LOC в заголовке центрального каталога (CEN).
См. также:
  • Значения константных полей

ENDSUB

static final int ENDSUB
Смещение поля количества записей на этом диске в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDTOT

static final int ENDTOT
Смещение поля общего количества записей в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDSIZ

static final int ENDSIZ
Смещение поля размера центрального каталога в байтах в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDOFF

static final int ENDOFF
Смещение поля смещения первого заголовка CEN в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

ENDCOM

static final int ENDCOM
Смещение поля длины комментария ZIP-файла в заголовке конца центрального каталога (END).
См. также:
  • Значения константных полей

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

ZipInputStream

public ZipInputStream(InputStream in)
Создает новый входной поток ZIP.

Для декодирования имен записей используется charset UTF-8.

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

ZipInputStream

public ZipInputStream(InputStream in, Charset charset)
Создает новый входной поток ZIP.
Параметры:
in — фактический входной поток
charset — кодировка, используемая для декодирования имени записи ZIP (игнорируется, если установлен бит языковой кодировки в флаге общего назначения записи ZIP).
Начиная с версии:
1.7

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

getNextEntry

public ZipEntry getNextEntry() throws IOException
Читает следующую запись ZIP-файла и устанавливает позицию потока в начало данных записи.
Возвращает:
следующую запись ZIP-файла или null, если записей больше нет
Вызывает исключение:
ZipException — если произошла ошибка ZIP-файла
IOException — если произошла ошибка ввода-вывода

closeEntry

public void closeEntry() throws IOException
Закрывает текущую запись ZIP и устанавливает позицию потока для чтения следующей записи.
Вызывает исключение:
ZipException — если произошла ошибка ZIP-файла
IOException — если произошла ошибка ввода-вывода

available

public int available() throws IOException
Возвращает 0, если для текущей записи ZIP обнаружен конец потока или для текущей записи ZIP был вызван closeEntry(); в противном случае возвращает 1.

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

Переопределяет:
available в классе InflaterInputStream
Возвращает:
0, если для текущей записи ZIP обнаружен конец потока или для текущей записи ZIP был вызван closeEntry(); в противном случае возвращает 1.
Вызывает исключение:
IOException — если произошла ошибка ввода-вывода.

read

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

readAllBytes

public byte[] readAllBytes() throws IOException
Читает все оставшиеся байты из входного потока для текущей записи ZIP. Этот метод блокируется до тех пор, пока не будут прочитаны все оставшиеся байты и не будет обнаружен конец потока либо не будет выброшено исключение. Этот метод не закрывает входной поток.

Когда этот поток достигает конца, последующие вызовы этого метода возвращают пустой массив байтов.

Обратите внимание, что этот метод предназначен для простых случаев, когда удобно прочитать все байты в массив байтов. Он не предназначен для чтения входных потоков с большим объемом данных.

Если при чтении из входного потока возникает ошибка ввода-вывода, она может возникнуть после чтения некоторых, но не всех байтов. В результате входной поток может не достичь конца и оказаться в несогласованном состоянии. При возникновении ошибки ввода-вывода настоятельно рекомендуется незамедлительно закрыть поток.

Переопределяет:
readAllBytes в классе InputStream
Возвращает:
массив байтов, содержащий байты, прочитанные из этого входного потока
Вызывает исключение:
OutOfMemoryError — если не удается выделить массив требуемого размера.
IOException — если произошла ошибка ввода-вывода
Начиная с версии:
9

readNBytes

public byte[] readNBytes(int len) throws IOException
Читает из входного потока для текущей записи ZIP не более заданного числа байтов. Этот метод блокируется, пока не будет прочитано запрошенное количество байтов, не будет обнаружен конец потока либо не будет выброшено исключение. Этот метод не закрывает входной поток.

Длина возвращаемого массива равна количеству байтов, прочитанных из потока. Если len равно нулю, байты не читаются и возвращается пустой массив байтов. В противном случае из потока считывается не более len байтов. Если достигнут конец потока, может быть прочитано меньше len байтов.

Когда этот поток достигает конца, последующие вызовы этого метода возвращают пустой массив байтов.

Обратите внимание, что этот метод предназначен для простых случаев, когда удобно прочитать заданное количество байтов в массив байтов. Общий объем памяти, выделяемой этим методом, пропорционален количеству байтов, прочитанных из потока, и ограничен значением len. Поэтому метод можно безопасно вызывать с очень большими значениями len при условии, что доступно достаточно памяти.

Если при чтении из входного потока возникает ошибка ввода-вывода, она может возникнуть после чтения некоторых, но не всех байтов. В результате входной поток может не достичь конца и оказаться в несогласованном состоянии. При возникновении ошибки ввода-вывода настоятельно рекомендуется незамедлительно закрыть поток.

Переопределяет:
readNBytes в классе InputStream
Примечание по реализации:
Этот метод вызывает super.readNBytes(int len).
Параметры:
len — максимальное количество байтов для чтения
Возвращает:
массив байтов, содержащий байты, прочитанные из этого входного потока
Вызывает исключение:
OutOfMemoryError — если не удается выделить массив требуемого размера.
IOException — если произошла ошибка ввода-вывода
Начиная с версии:
11

readNBytes

public int readNBytes(byte[] b, int off, int len) throws IOException
Читает запрошенное количество байтов из входного потока в заданный массив байтов для текущей записи ZIP и возвращает количество распакованных байтов. Этот метод блокируется, пока не будет прочитано len байтов входных данных, не будет обнаружен конец потока либо не будет выброшено исключение. Возвращается фактическое количество прочитанных байтов, которое может быть равно нулю. Этот метод не закрывает входной поток.

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

Если len равно нулю, байты не читаются и возвращается 0; в противном случае предпринимается попытка прочитать до len байтов.

Первый прочитанный байт сохраняется в элементе b[off], следующий — в b[off+1] и так далее. Число прочитанных байтов не превышает len. Пусть k — фактическое число прочитанных байтов; эти байты будут сохранены в элементах с b[off] по b[off+k-1], а элементы с b[off+k ] по b[off+len-1] останутся без изменений.

Если при чтении из входного потока возникает ошибка ввода-вывода, она может возникнуть после обновления данными из входного потока некоторых, но не всех байтов b. В результате входной поток и b могут оказаться в несогласованном состоянии. При возникновении ошибки ввода-вывода настоятельно рекомендуется незамедлительно закрыть поток.

Переопределяет:
readNBytes в классе InputStream
Параметры:
b — массив байтов, в который считываются данные
off — начальное смещение в b, по которому записываются данные
len — максимальное количество байтов для чтения
Возвращает:
фактическое количество байтов, прочитанных в буфер
Вызывает исключение:
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off
IOException — если произошла ошибка ввода-вывода
Начиная с версии:
9

skipNBytes

public void skipNBytes(long n) throws IOException
Пропускает и отбрасывает ровно n байтов данных из этого входного потока для текущей записи ZIP. Если n равно нулю, байты не пропускаются. Если n отрицательно, байты не пропускаются. Подклассы могут обрабатывать отрицательное значение иначе.

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

Если конец потока достигнут до того, как поток окажется в нужной позиции, выбрасывается EOFException.

Если возникает ошибка ввода-вывода, входной поток может оказаться в несогласованном состоянии. При возникновении ошибки ввода-вывода настоятельно рекомендуется незамедлительно закрыть поток.

Переопределяет:
skipNBytes в классе InputStream
Параметры:
n — количество байтов, которые нужно пропустить.
Вызывает исключение:
IOException — если невозможно установить нужную позицию в потоке или произошла ошибка ввода-вывода.
Начиная с версии:
12
См. также:
  • InputStream.skip(long)

transferTo

public long transferTo(OutputStream out) throws IOException
Читает все байты из этого входного потока для текущей записи ZIP и записывает их в заданный выходной поток в том порядке, в котором они были прочитаны. По завершении этот входной поток будет находиться в конце. Этот метод не закрывает ни один из потоков.

Этот метод может бесконечно долго блокироваться при чтении из входного потока или записи в выходной поток. Поведение в случае асинхронного закрытия входного и/или выходного потока либо прерывания потока выполнения во время передачи в значительной степени зависит от конкретной реализации входного и выходного потоков и поэтому не определено.

Если общее количество переданных байтов превышает Long.MAX_VALUE, будет возвращено Long.MAX_VALUE.

Если при чтении из входного потока или записи в выходной поток возникает ошибка ввода-вывода, она может возникнуть после чтения или записи нескольких байтов. В результате входной поток может не достичь конца, а один или оба потока могут оказаться в несогласованном состоянии. При возникновении ошибки ввода-вывода настоятельно рекомендуется незамедлительно закрыть оба потока.

Переопределяет:
transferTo в классе InputStream
Параметры:
out — выходной поток, не равный null
Возвращает:
количество переданных байтов
Вызывает исключение:
IOException — если при чтении или записи произошла ошибка ввода-вывода
Начиная с версии:
9

read

public int read(byte[] b, int off, int len) throws IOException
Считывает запрошенное количество байтов из входного потока в указанный массив байтов для текущей записи ZIP и возвращает количество распакованных байтов. Если 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 в классе InflaterInputStream
Параметры:
b - буфер, в который считываются данные
off - начальное смещение в целевом массиве b
len - максимальное количество считываемых байтов
Возвращает:
фактическое количество считанных байтов или -1, если достигнут конец записи
Выбрасывает:
IndexOutOfBoundsException - если off отрицательно, len отрицательно или len больше b.length - off
ZipException - если произошла ошибка файла ZIP
IOException - если произошла ошибка ввода-вывода
См. также:
  • FilterInputStream.in

skip

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

close

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

createZipEntry

protected ZipEntry createZipEntry(String name)
Создает новый объект ZipEntry для указанного имени записи.
Параметры:
name - имя записи в файле ZIP
Возвращает:
только что созданный ZipEntry

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