ZipOutputStream (Java Platform SE 8 ) (original) (raw)
- java.io.OutputStream
- java.io.FilterOutputStream
- java.util.zip.DeflaterOutputStream
* * java.util.zip.ZipOutputStream
- java.util.zip.DeflaterOutputStream
- java.io.FilterOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Direct Known Subclasses:
JarOutputStream
public class ZipOutputStream
extends DeflaterOutputStream
This class implements an output stream filter for writing files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Field Summary
Fields
Modifier and Type Field Description static int CENATT static int CENATX static int CENCOM static int CENCRC static int CENDSK static int CENEXT static int CENFLG static int CENHDR static int CENHOW static int CENLEN static int CENNAM static int CENOFF static long CENSIG static int CENSIZ static int CENTIM static int CENVEM static int CENVER static int DEFLATED Compression method for compressed (DEFLATED) entries. static int ENDCOM static int ENDHDR static int ENDOFF static long ENDSIG static int ENDSIZ static int ENDSUB static int ENDTOT static int EXTCRC static int EXTHDR static int EXTLEN static long EXTSIG static int EXTSIZ static int LOCCRC static int LOCEXT static int LOCFLG static int LOCHDR static int LOCHOW static int LOCLEN static int LOCNAM static long LOCSIG static int LOCSIZ static int LOCTIM static int LOCVER static int STORED Compression method for uncompressed (STORED) entries. * ### Fields inherited from class java.util.zip.[DeflaterOutputStream](../../../java/util/zip/DeflaterOutputStream.html "class in java.util.zip") `[buf](../../../java/util/zip/DeflaterOutputStream.html#buf), [def](../../../java/util/zip/DeflaterOutputStream.html#def)` * ### Fields inherited from class java.io.[FilterOutputStream](../../../java/io/FilterOutputStream.html "class in java.io") `[out](../../../java/io/FilterOutputStream.html#out)`
Constructor Summary
Constructors
Constructor Description ZipOutputStream(OutputStream out) Creates a new ZIP output stream. ZipOutputStream(OutputStream out,Charset charset) Creates a new ZIP output stream. Method Summary
All Methods Instance Methods Concrete Methods
Modifier and Type Method Description void close() Closes the ZIP output stream as well as the stream being filtered. 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(ZipEntry e) Begins writing a new ZIP file entry and positions the stream to the start of the entry data. void setComment(String comment) Sets the ZIP file comment. void setLevel(int level) Sets the compression level for subsequent entries which are DEFLATED. void setMethod(int method) Sets the default compression method for subsequent entries. void write(byte[] b, int off, int len) Writes an array of bytes to the current ZIP entry data. * ### Methods inherited from class java.util.zip.[DeflaterOutputStream](../../../java/util/zip/DeflaterOutputStream.html "class in java.util.zip") `[deflate](../../../java/util/zip/DeflaterOutputStream.html#deflate--), [flush](../../../java/util/zip/DeflaterOutputStream.html#flush--), [write](../../../java/util/zip/DeflaterOutputStream.html#write-int-)` * ### Methods inherited from class java.io.[FilterOutputStream](../../../java/io/FilterOutputStream.html "class in java.io") `[write](../../../java/io/FilterOutputStream.html#write-byte:A-)` * ### Methods inherited from class java.lang.[Object](../../../java/lang/Object.html "class in java.lang") `[clone](../../../java/lang/Object.html#clone--), [equals](../../../java/lang/Object.html#equals-java.lang.Object-), [finalize](../../../java/lang/Object.html#finalize--), [getClass](../../../java/lang/Object.html#getClass--), [hashCode](../../../java/lang/Object.html#hashCode--), [notify](../../../java/lang/Object.html#notify--), [notifyAll](../../../java/lang/Object.html#notifyAll--), [toString](../../../java/lang/Object.html#toString--), [wait](../../../java/lang/Object.html#wait--), [wait](../../../java/lang/Object.html#wait-long-), [wait](../../../java/lang/Object.html#wait-long-int-)`
Field Detail
* #### STORED public static final int STORED Compression method for uncompressed (STORED) entries. See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.STORED) * #### DEFLATED public static final int DEFLATED Compression method for compressed (DEFLATED) entries. See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.DEFLATED) * #### LOCSIG public static final long LOCSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCSIG) * #### EXTSIG public static final long EXTSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.EXTSIG) * #### CENSIG public static final long CENSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENSIG) * #### ENDSIG public static final long ENDSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDSIG) * #### LOCHDR public static final int LOCHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCHDR) * #### EXTHDR public static final int EXTHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.EXTHDR) * #### CENHDR public static final int CENHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENHDR) * #### ENDHDR public static final int ENDHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDHDR) * #### LOCVER public static final int LOCVER See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCVER) * #### LOCFLG public static final int LOCFLG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCFLG) * #### LOCHOW public static final int LOCHOW See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCHOW) * #### LOCTIM public static final int LOCTIM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCTIM) * #### LOCCRC public static final int LOCCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCCRC) * #### LOCSIZ public static final int LOCSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCSIZ) * #### LOCLEN public static final int LOCLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCLEN) * #### LOCNAM public static final int LOCNAM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCNAM) * #### LOCEXT public static final int LOCEXT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.LOCEXT) * #### EXTCRC public static final int EXTCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.EXTCRC) * #### EXTSIZ public static final int EXTSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.EXTSIZ) * #### EXTLEN public static final int EXTLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.EXTLEN) * #### CENVEM public static final int CENVEM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENVEM) * #### CENVER public static final int CENVER See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENVER) * #### CENFLG public static final int CENFLG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENFLG) * #### CENHOW public static final int CENHOW See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENHOW) * #### CENTIM public static final int CENTIM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENTIM) * #### CENCRC public static final int CENCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENCRC) * #### CENSIZ public static final int CENSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENSIZ) * #### CENLEN public static final int CENLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENLEN) * #### CENNAM public static final int CENNAM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENNAM) * #### CENEXT public static final int CENEXT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENEXT) * #### CENCOM public static final int CENCOM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENCOM) * #### CENDSK public static final int CENDSK See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENDSK) * #### CENATT public static final int CENATT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENATT) * #### CENATX public static final int CENATX See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENATX) * #### CENOFF public static final int CENOFF See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.CENOFF) * #### ENDSUB public static final int ENDSUB See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDSUB) * #### ENDTOT public static final int ENDTOT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDTOT) * #### ENDSIZ public static final int ENDSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDSIZ) * #### ENDOFF public static final int ENDOFF See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDOFF) * #### ENDCOM public static final int ENDCOM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipOutputStream.ENDCOM)
Constructor Detail
* #### ZipOutputStream public ZipOutputStream([OutputStream](../../../java/io/OutputStream.html "class in java.io") out) Creates a new ZIP output stream. The UTF-8 [charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") is used to encode the entry names and comments. Parameters: `out` \- the actual output stream * #### ZipOutputStream public ZipOutputStream([OutputStream](../../../java/io/OutputStream.html "class in java.io") out, [Charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") charset) Creates a new ZIP output stream. Parameters: `out` \- the actual output stream `charset` \- the [charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") to be used to encode the entry names and comments Since: 1.7
Method Detail
* #### setComment public void setComment([String](../../../java/lang/String.html "class in java.lang") comment) Sets the ZIP file comment. Parameters: `comment` \- the comment string Throws: `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the length of the specified ZIP file comment is greater than 0xFFFF bytes * #### setMethod public void setMethod(int method) Sets the default compression method for subsequent entries. This default will be used whenever the compression method is not specified for an individual ZIP file entry, and is initially set to DEFLATED. Parameters: `method` \- the default compression method Throws: `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the specified compression method is invalid * #### setLevel public void setLevel(int level) Sets the compression level for subsequent entries which are DEFLATED. The default setting is DEFAULT\_COMPRESSION. Parameters: `level` \- the compression level (0-9) Throws: `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if the compression level is invalid * #### putNextEntry public void putNextEntry([ZipEntry](../../../java/util/zip/ZipEntry.html "class in java.util.zip") e) throws [IOException](../../../java/io/IOException.html "class in java.io") Begins writing a new ZIP file entry and positions the stream to the start of the entry data. Closes the current entry if still active. The default compression method will be used if no compression method was specified for the entry, and the current time will be used if the entry has no set modification time. Parameters: `e` \- the ZIP entry to be written Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP format error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred * #### closeEntry public void closeEntry() throws [IOException](../../../java/io/IOException.html "class in java.io") Closes the current ZIP entry and positions the stream for writing the next entry. Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP format error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred * #### write public void write(byte[] b, int off, int len) throws [IOException](../../../java/io/IOException.html "class in java.io") Writes an array of bytes to the current ZIP entry data. This method will block until all the bytes are written. Overrides: `[write](../../../java/util/zip/DeflaterOutputStream.html#write-byte:A-int-int-)` in class `[DeflaterOutputStream](../../../java/util/zip/DeflaterOutputStream.html "class in java.util.zip")` Parameters: `b` \- the data to be written `off` \- the start offset in the data `len` \- the number of bytes that are written Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred See Also: [FilterOutputStream.write(int)](../../../java/io/FilterOutputStream.html#write-int-) * #### finish public void finish() throws [IOException](../../../java/io/IOException.html "class in java.io") Finishes writing the contents of the ZIP output stream without closing the underlying stream. Use this method when applying multiple filters in succession to the same output stream. Overrides: `[finish](../../../java/util/zip/DeflaterOutputStream.html#finish--)` in class `[DeflaterOutputStream](../../../java/util/zip/DeflaterOutputStream.html "class in java.util.zip")` Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O exception has occurred * #### close public void close() throws [IOException](../../../java/io/IOException.html "class in java.io") Closes the ZIP output stream as well as the stream being filtered. Specified by: `[close](../../../java/io/Closeable.html#close--)` in interface `[Closeable](../../../java/io/Closeable.html "interface in java.io")` Specified by: `[close](../../../java/lang/AutoCloseable.html#close--)` in interface `[AutoCloseable](../../../java/lang/AutoCloseable.html "interface in java.lang")` Overrides: `[close](../../../java/util/zip/DeflaterOutputStream.html#close--)` in class `[DeflaterOutputStream](../../../java/util/zip/DeflaterOutputStream.html "class in java.util.zip")` Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred See Also: [FilterOutputStream.flush()](../../../java/io/FilterOutputStream.html#flush--), [FilterOutputStream.out](../../../java/io/FilterOutputStream.html#out)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.