Spec-Zone.ru › OpenJDK 25

Класс ZipOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.util.zip.DeflaterOutputStream
java.util.zip.ZipOutputStream
Все реализованные интерфейсы:
Closeable, Flushable, AutoCloseable
Прямые известные подклассы:
JarOutputStream
public class ZipOutputStream extends DeflaterOutputStream
Этот класс реализует фильтр выходного потока для записи файлов в формате ZIP. Поддерживаются как сжатые, так и несжатые записи.

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

Начиная с:
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 DEFLATED
Метод сжатия для сжатых записей (DEFLATED).
static final int ENDCOM
Смещение поля длины комментария ZIP-файла в заголовке конца центрального каталога (END).
static final int ENDHDR
Размер заголовка конца центрального каталога (END) в байтах (включая сигнатуру).
static final int ENDOFF
Смещение поля смещения первого заголовка CEN в заголовке конца центрального каталога (END).
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).
static final int STORED
Метод сжатия для несжатых записей (STORED).

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

buf, def

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

out

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

Конструктор Описание
ZipOutputStream(OutputStream out)
Создает новый выходной поток ZIP.
ZipOutputStream(OutputStream out, Charset charset)
Создает новый выходной поток ZIP.

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

Модификатор и тип Метод Описание
void close()
Закрывает базовый поток и фильтруемый поток после полной записи содержимого выходного потока ZIP.
void closeEntry()
Закрывает текущую запись ZIP и подготавливает поток к записи следующей записи.
void finish()
Завершает запись содержимого выходного потока ZIP, не закрывая базовый поток.
void putNextEntry(ZipEntry e)
Начинает запись новой записи ZIP-файла и устанавливает поток в начало данных записи.
void setComment(String comment)
Задает комментарий ZIP-файла.
void setLevel(int level)
Задает уровень сжатия для последующих записей, использующих DEFLATED.
void setMethod(int method)
Задает метод сжатия по умолчанию для последующих записей.
void write(byte[] b, int off, int len)
Записывает массив байтов в данные текущей записи ZIP.

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

deflate, flush, write

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

write

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

nullOutputStream

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

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

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

STORED

public static final int STORED
Метод сжатия для несжатых записей (STORED).
См. также:
  • Значения констант полей

DEFLATED

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

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).
См. также:
  • Значения констант полей

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

ZipOutputStream

public ZipOutputStream(OutputStream out)
Создает новый поток вывода ZIP.

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

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

ZipOutputStream

public ZipOutputStream(OutputStream out, Charset charset)
Создает новый поток вывода ZIP.
Параметры:
out — фактический поток вывода
charset — кодировка, используемая для кодирования имен записей и комментариев
Начиная с:
1.7

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

setComment

public void setComment(String comment)
Задает комментарий ZIP-файла.
Параметры:
comment — строка комментария
Выбрасывает:
IllegalArgumentException — если длина указанного комментария ZIP-файла превышает 0xFFFF байт

setMethod

public void setMethod(int method)
Задает метод сжатия по умолчанию для последующих записей. Это значение по умолчанию будет использоваться, если метод сжатия не указан для отдельной записи ZIP-файла. Изначально установлен метод DEFLATED.
Параметры:
method — метод сжатия по умолчанию
Выбрасывает:
IllegalArgumentException — если указанный метод сжатия недопустим

setLevel

public void setLevel(int level)
Задает уровень сжатия для последующих записей, сжимаемых методом DEFLATED. По умолчанию используется DEFAULT_COMPRESSION.
Параметры:
level — уровень сжатия (0–9)
Выбрасывает:
IllegalArgumentException — если уровень сжатия недопустим

putNextEntry

public void putNextEntry(ZipEntry e) throws IOException
Начинает запись новой записи ZIP-файла и перемещает поток к началу данных записи. Если текущая запись еще активна, она закрывается.

Если для записи не указан метод сжатия, используется метод по умолчанию. При записи сжатой записи (DEFLATED), если размер сжатых данных явно не задан с помощью метода ZipEntry.setCompressedSize(long), размер сжатых данных устанавливается равным фактическому размеру после сжатия методом deflate.

Если время изменения записи не задано, используется текущее время.

Примечание API:
При записи записи каталога следует использовать метод сжатия STORED и установить значения размера и CRC-32 равными 0:
     ZipEntry e = new ZipEntry(entryName);
     if (e.isDirectory()) {
         e.setMethod(ZipEntry.STORED);
         e.setSize(0);
         e.setCrc(0);
     }
     stream.putNextEntry(e);
Это обеспечивает оптимальную производительность при обработке записей каталогов.
Параметры:
e — запись ZIP, которую необходимо записать
Выбрасывает:
ZipException — если произошла ошибка формата ZIP
IOException — если произошла ошибка ввода-вывода

closeEntry

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

write

public void write(byte[] b, int off, int len) throws IOException
Записывает массив байтов в данные текущей записи ZIP. Этот метод блокирует выполнение до записи всех байтов.
Переопределяет:
write в классе DeflaterOutputStream
Параметры:
b — данные для записи
off — начальное смещение в данных
len — количество записываемых байтов
Выбрасывает:
ZipException — если произошла ошибка ZIP-файла
IOException — если произошла ошибка ввода-вывода
См. также:
  • FilterOutputStream.write(int)

finish

public void finish() throws IOException
Завершает запись содержимого потока вывода ZIP, не закрывая базовый поток. Используйте этот метод, если к одному и тому же потоку вывода последовательно применяется несколько фильтров.

Будет выброшено исключение ZipException, если суммарная длина закодированных имени записи, данных дополнительных полей, комментария записи и размера заголовка CEN превышает 65 535 байт.

Переопределяет:
finish в классе DeflaterOutputStream
Выбрасывает:
ZipException — если произошла ошибка ZIP-файла
IOException — если произошло исключение ввода-вывода

close

public void close() throws IOException
Закрывает базовый поток и фильтруемый поток после полной записи содержимого потока вывода ZIP.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Переопределяет:
close в классе DeflaterOutputStream
Выбрасывает:
ZipException — если произошла ошибка ZIP-файла
IOException — если произошла ошибка ввода-вывода
См. также:
  • FilterOutputStream.flush()
  • FilterOutputStream.out

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

Spec-Zone.ru

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