Class ZipOutputStream
- All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
- Direct Known Subclasses:
JarOutputStream
public class ZipOutputStream extends DeflaterOutputStream
Unless otherwise noted, passing a null argument to a constructor or method in this class will cause a NullPointerException to be thrown.
By default, the UTF-8 charset is used to encode entry names and comments. ZipOutputStream(OutputStream, Charset) may be be used to specify an alternative charset.
- Since:
- 1.1
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
static final int |
CENATT |
Central directory (CEN) header internal file attributes field offset. |
static final int |
CENATX |
Central directory (CEN) header external file attributes field offset. |
static final int |
CENCOM |
Central directory (CEN) header comment length field offset. |
static final int |
CENCRC |
Central directory (CEN) header uncompressed file crc-32 value field offset. |
static final int |
CENDSK |
Central directory (CEN) header disk number start field offset. |
static final int |
CENEXT |
Central directory (CEN) header extra field length field offset. |
static final int |
CENFLG |
Central directory (CEN) header encrypt, decrypt flags field offset. |
static final int |
CENHDR |
Central directory (CEN) header size in bytes (including signature). |
static final int |
CENHOW |
Central directory (CEN) header compression method field offset. |
static final int |
CENLEN |
Central directory (CEN) header uncompressed size field offset. |
static final int |
CENNAM |
Central directory (CEN) header filename length field offset. |
static final int |
CENOFF |
Central directory (CEN) header LOC header offset field offset. |
static final long |
CENSIG |
Central directory (CEN) header signature. |
static final int |
CENSIZ |
Central directory (CEN) header compressed size field offset. |
static final int |
CENTIM |
Central directory (CEN) header modification time field offset. |
static final int |
CENVEM |
Central directory (CEN) header version made by field offset. |
static final int |
CENVER |
Central directory (CEN) header version needed to extract field offset. |
static final int |
DEFLATED |
Compression method for compressed (DEFLATED) entries. |
static final int |
ENDCOM |
End of central directory (END) header ZIP file comment length field offset. |
static final int |
ENDHDR |
End of central directory (END) header size in bytes (including signature). |
static final int |
ENDOFF |
End of central directory (END) header offset for the first CEN header field offset. |
static final long |
ENDSIG |
End of central directory (END) header signature. |
static final int |
ENDSIZ |
End of central directory (END) header central directory size in bytes field offset. |
static final int |
ENDSUB |
End of central directory (END) header number of entries on this disk field offset. |
static final int |
ENDTOT |
End of central directory (END) header total number of entries field offset. |
static final int |
EXTCRC |
Extra local (EXT) header uncompressed file crc-32 value field offset. |
static final int |
EXTHDR |
Extra local (EXT) header size in bytes (including signature). |
static final int |
EXTLEN |
Extra local (EXT) header uncompressed size field offset. |
static final long |
EXTSIG |
Extra local (EXT) header signature. |
static final int |
EXTSIZ |
Extra local (EXT) header compressed size field offset. |
static final int |
LOCCRC |
Local file (LOC) header uncompressed file crc-32 value field offset. |
static final int |
LOCEXT |
Local file (LOC) header extra field length field offset. |
static final int |
LOCFLG |
Local file (LOC) header general purpose bit flag field offset. |
static final int |
LOCHDR |
Local file (LOC) header size in bytes (including signature). |
static final int |
LOCHOW |
Local file (LOC) header compression method field offset. |
static final int |
LOCLEN |
Local file (LOC) header uncompressed size field offset. |
static final int |
LOCNAM |
Local file (LOC) header filename length field offset. |
static final long |
LOCSIG |
Local file (LOC) header signature. |
static final int |
LOCSIZ |
Local file (LOC) header compressed size field offset. |
static final int |
LOCTIM |
Local file (LOC) header modification time field offset. |
static final int |
LOCVER |
Local file (LOC) header version needed to extract field offset. |
static final int |
STORED |
Compression method for uncompressed (STORED) entries. |
Fields declared in class DeflaterOutputStream
buf, def | Modifier and Type | Field | Description |
|---|---|---|
protected byte[] |
buf |
Output buffer for writing compressed data. |
protected Deflater |
def |
Compressor for this stream. |
Fields declared in class FilterOutputStream
out | Modifier and Type | Field | Description |
|---|---|---|
protected OutputStream |
out |
The underlying output stream to be filtered. |
Constructor Summary
| Constructor | Description |
|---|---|
ZipOutputStream |
Creates a new ZIP output stream using the UTF-8 charset to encode entry names and comments. |
ZipOutputStream |
Creates a new ZIP output stream using the specified charset to encode entry names and comments. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
Closes the underlying stream and the stream being filtered after the contents of the ZIP output stream are fully written. |
void |
closeEntry() |
Closes the current ZIP entry and positions the stream for writing the next entry. |
void |
finish() |
Finishes writing the contents of the ZIP output stream without closing the underlying stream. |
void |
putNextEntry |
Begins writing a new ZIP file entry and positions the stream to the start of the entry data. |
void |
setComment |
Sets the ZIP file comment. |
void |
setLevel |
Sets the compression level for subsequent entries which are DEFLATED. |
void |
setMethod |
Sets the default compression method for subsequent entries. |
void |
write |
Writes an array of bytes to the current ZIP entry data. |
Methods declared in class DeflaterOutputStream
deflate, flush, write | Modifier and Type | Method | Description |
|---|---|---|
protected void |
deflate() |
Writes next block of compressed data to the output stream. |
void |
flush() |
Flushes the compressed output stream. |
void |
write |
Writes a byte to the compressed output stream. |
Methods declared in class FilterOutputStream
write | Modifier and Type | Method | Description |
|---|---|---|
void |
write |
Writes b.length bytes to this output stream. |
Methods declared in class OutputStream
nullOutputStream | Modifier and Type | Method | Description |
|---|---|---|
static OutputStream |
nullOutputStream() |
Returns a new OutputStream which discards all bytes. |
Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Modifier and Type | Method | Description |
|---|---|---|
protected Object |
clone() |
Creates and returns a copy of this object. |
boolean |
equals |
Indicates whether some other object is "equal to" this one. |
protected void |
finalize() |
Deprecated, for removal: This API element is subject to removal in a future version. Finalization is deprecated and subject to removal in a future release. |
final Class |
getClass() |
Returns the runtime class of this Object. |
int |
hashCode() |
Returns a hash code value for this object. |
final void |
notify() |
Wakes up a single thread that is waiting on this object's monitor. |
final void |
notifyAll() |
Wakes up all threads that are waiting on this object's monitor. |
String |
toString() |
Returns a string representation of the object. |
final void |
wait() |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted. |
final void |
wait |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. |
final void |
wait |
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed. |
Field Details
STORED
public static final int STORED
- See Also:
DEFLATED
public static final int DEFLATED
- See Also:
LOCSIG
static final long LOCSIG
- See Also:
EXTSIG
static final long EXTSIG
- See Also:
CENSIG
static final long CENSIG
- See Also:
ENDSIG
static final long ENDSIG
- See Also:
LOCHDR
static final int LOCHDR
- See Also:
EXTHDR
static final int EXTHDR
- See Also:
CENHDR
static final int CENHDR
- See Also:
ENDHDR
static final int ENDHDR
- See Also:
LOCVER
static final int LOCVER
- See Also:
LOCFLG
static final int LOCFLG
- See Also:
LOCHOW
static final int LOCHOW
- See Also:
LOCTIM
static final int LOCTIM
- See Also:
LOCCRC
static final int LOCCRC
- See Also:
LOCSIZ
static final int LOCSIZ
- See Also:
LOCLEN
static final int LOCLEN
- See Also:
LOCNAM
static final int LOCNAM
- See Also:
LOCEXT
static final int LOCEXT
- See Also:
EXTCRC
static final int EXTCRC
- See Also:
EXTSIZ
static final int EXTSIZ
- See Also:
EXTLEN
static final int EXTLEN
- See Also:
CENVEM
static final int CENVEM
- See Also:
CENVER
static final int CENVER
- See Also:
CENFLG
static final int CENFLG
- See Also:
CENHOW
static final int CENHOW
- See Also:
CENTIM
static final int CENTIM
- See Also:
CENCRC
static final int CENCRC
- See Also:
CENSIZ
static final int CENSIZ
- See Also:
CENLEN
static final int CENLEN
- See Also:
CENNAM
static final int CENNAM
- See Also:
CENEXT
static final int CENEXT
- See Also:
CENCOM
static final int CENCOM
- See Also:
CENDSK
static final int CENDSK
- See Also:
CENATT
static final int CENATT
- See Also:
CENATX
static final int CENATX
- See Also:
CENOFF
static final int CENOFF
- See Also:
ENDSUB
static final int ENDSUB
- See Also:
ENDTOT
static final int ENDTOT
- See Also:
ENDSIZ
static final int ENDSIZ
- See Also:
ENDOFF
static final int ENDOFF
- See Also:
ENDCOM
static final int ENDCOM
- See Also:
Constructor Details
ZipOutputStream
public ZipOutputStream(OutputStream out)
charset to encode entry names and comments.- Parameters:
-
out- the actual output stream
ZipOutputStream
Method Details
setComment
public void setComment(String comment)
comment is an empty string or null then the output will have no ZIP file comment.- Parameters:
-
comment- the comment string, or an empty string or null for no comment - Throws:
-
IllegalArgumentException- if the length of the specified ZIP file comment is greater than 0xFFFF bytes or if thecommentcontains characters that cannot be mapped by theCharsetused to encode entry names and comments
setMethod
public void setMethod(int method)
- Parameters:
-
method- the default compression method - Throws:
-
IllegalArgumentException- if the specified compression method is invalid
setLevel
public void setLevel(int level)
- Parameters:
-
level- the compression level (0-9) - Throws:
-
IllegalArgumentException- if the compression level is invalid
putNextEntry
public void putNextEntry(ZipEntry e) throws IOException
The default compression method will be used if no compression method was specified for the entry. When writing a compressed (DEFLATED) entry, and the compressed size has not been explicitly set with the ZipEntry.setCompressedSize(long) method, then the compressed size will be set to the actual compressed size after deflation.
The current time will be used if the entry has no set modification time.
- API Note:
- When writing a directory entry, the STORED compression method should be used and the size and CRC-32 values should be set to 0: This allows optimal performance when processing directory entries.
ZipEntry e = new ZipEntry(entryName); if (e.isDirectory()) { e.setMethod(ZipEntry.STORED); e.setSize(0); e.setCrc(0); } stream.putNextEntry(e); - Parameters:
-
e- the ZIP entry to be written - Throws:
-
ZipException- if a ZIP format error has occurred -
IOException- if an I/O error has occurred
closeEntry
public void closeEntry() throws IOException
- Throws:
-
ZipException- if a ZIP format error has occurred -
IOException- if an I/O error has occurred
write
public void write(byte[] b, int off, int len) throws IOException
- Overrides:
-
writein classDeflaterOutputStream - Parameters:
-
b- the data to be written -
off- the start offset in the data -
len- the number of bytes that are written - Throws:
-
ZipException- if a ZIP file error has occurred -
IOException- if an I/O error has occurred - See Also:
finish
public void finish() throws IOException
A ZipException will be thrown if the combined length, after encoding, of the entry name, the extra field data, the entry comment and CEN Header size, exceeds 65,535 bytes.
- Overrides:
-
finishin classDeflaterOutputStream - Throws:
-
ZipException- if a ZIP file error has occurred -
IOException- if an I/O exception has occurred
close
public void close() throws IOException
- Specified by:
-
closein interfaceAutoCloseable - Specified by:
-
closein interfaceCloseable - Overrides:
-
closein classDeflaterOutputStream - Throws:
-
ZipException- if a ZIP file error has occurred -
IOException- if an I/O error has occurred - See Also:
© 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.