Skip to content

Most visited

Recently visited

navigation
Added in API level 1

ZipOutputStream

public class ZipOutputStream
extends DeflaterOutputStream

java.lang.Object
   ↳ java.io.OutputStream
     ↳ java.io.FilterOutputStream
       ↳ java.util.zip.DeflaterOutputStream
         ↳ java.util.zip.ZipOutputStream
Known Direct Subclasses


Used to write (compress) data into zip files.

ZipOutputStream is used to write ZipEntrys to the underlying stream. Output from ZipOutputStream can be read using ZipFile or ZipInputStream.

While DeflaterOutputStream can write compressed zip file entries, this extension can write uncompressed entries as well. Use setMethod(int) or setMethod(int) with the STORED flag.

Example

Using ZipOutputStream is a little more complicated than GZIPOutputStream because zip files are containers that can contain multiple files. This code creates a zip file containing several files, similar to the zip(1) utility.

 OutputStream os = ...
 ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(os));
 try {
     for (int i = 0; i < fileCount; ++i) {
         String filename = ...
         byte[] bytes = ...
         ZipEntry entry = new ZipEntry(filename);
         zos.putNextEntry(entry);
         zos.write(bytes);
         zos.closeEntry();
     }
 } finally {
     zos.close();
 }
 

Summary

Constants

int CENATT

int CENATX

int CENCOM

int CENCRC

int CENDSK

int CENEXT

int CENFLG

int CENHDR

int CENHOW

int CENLEN

int CENNAM

int CENOFF

long CENSIG

int CENSIZ

int CENTIM

int CENVEM

int CENVER

int DEFLATED

Indicates deflated entries.

int ENDCOM

int ENDHDR

int ENDOFF

long ENDSIG

int ENDSIZ

int ENDSUB

int ENDTOT

int EXTCRC

int EXTHDR

int EXTLEN

long EXTSIG

int EXTSIZ

int LOCCRC

int LOCEXT

int LOCFLG

int LOCHDR

int LOCHOW

int LOCLEN

int LOCNAM

long LOCSIG

int LOCSIZ

int LOCTIM

int LOCVER

int STORED

Indicates uncompressed entries.

Inherited fields

From class java.util.zip.DeflaterOutputStream
From class java.io.FilterOutputStream

Public constructors

ZipOutputStream(OutputStream os)

Constructs a new ZipOutputStream that writes a zip file to the given OutputStream.

Public methods

void close()

Closes the current ZipEntry, if any, and the underlying output stream.

void closeEntry()

Closes the current ZipEntry.

void finish()

Indicates that all entries have been written to the stream.

void putNextEntry(ZipEntry ze)

Writes entry information to the underlying stream.

void setComment(String comment)

Sets the comment associated with the file being written.

void setLevel(int level)

Sets the compression level to be used for writing entry data.

void setMethod(int method)

Sets the default compression method to be used when a ZipEntry doesn't explicitly specify a method.

void write(byte[] buffer, int offset, int byteCount)

Writes data for the current entry to the underlying stream.

Inherited methods

From class java.util.zip.DeflaterOutputStream
From class java.io.FilterOutputStream
From class java.io.OutputStream
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable
From interface java.lang.AutoCloseable

Constants

CENATT

Added in API level 21
int CENATT

Constant Value: 36 (0x00000024)

CENATX

Added in API level 21
int CENATX

Constant Value: 38 (0x00000026)

CENCOM

Added in API level 21
int CENCOM

Constant Value: 32 (0x00000020)

CENCRC

Added in API level 21
int CENCRC

Constant Value: 16 (0x00000010)

CENDSK

Added in API level 21
int CENDSK

Constant Value: 34 (0x00000022)

CENEXT

Added in API level 21
int CENEXT

Constant Value: 30 (0x0000001e)

CENFLG

Added in API level 21
int CENFLG

Constant Value: 8 (0x00000008)

CENHDR

Added in API level 21
int CENHDR

Constant Value: 46 (0x0000002e)

CENHOW

Added in API level 21
int CENHOW

Constant Value: 10 (0x0000000a)

CENLEN

Added in API level 21
int CENLEN

Constant Value: 24 (0x00000018)

CENNAM

Added in API level 21
int CENNAM

Constant Value: 28 (0x0000001c)

CENOFF

Added in API level 21
int CENOFF

Constant Value: 42 (0x0000002a)

CENSIG

Added in API level 21
long CENSIG

Constant Value: 33639248 (0x0000000002014b50)

CENSIZ

Added in API level 21
int CENSIZ

Constant Value: 20 (0x00000014)

CENTIM

Added in API level 21
int CENTIM

Constant Value: 12 (0x0000000c)

CENVEM

Added in API level 21
int CENVEM

Constant Value: 4 (0x00000004)

CENVER

Added in API level 21
int CENVER

Constant Value: 6 (0x00000006)

DEFLATED

Added in API level 1
int DEFLATED

Indicates deflated entries.

Constant Value: 8 (0x00000008)

ENDCOM

Added in API level 21
int ENDCOM

Constant Value: 20 (0x00000014)

ENDHDR

Added in API level 21
int ENDHDR

Constant Value: 22 (0x00000016)

ENDOFF

Added in API level 21
int ENDOFF

Constant Value: 16 (0x00000010)

ENDSIG

Added in API level 21
long ENDSIG

Constant Value: 101010256 (0x0000000006054b50)

ENDSIZ

Added in API level 21
int ENDSIZ

Constant Value: 12 (0x0000000c)

ENDSUB

Added in API level 21
int ENDSUB

Constant Value: 8 (0x00000008)

ENDTOT

Added in API level 21
int ENDTOT

Constant Value: 10 (0x0000000a)

EXTCRC

Added in API level 21
int EXTCRC

Constant Value: 4 (0x00000004)

EXTHDR

Added in API level 21
int EXTHDR

Constant Value: 16 (0x00000010)

EXTLEN

Added in API level 21
int EXTLEN

Constant Value: 12 (0x0000000c)

EXTSIG

Added in API level 21
long EXTSIG

Constant Value: 134695760 (0x0000000008074b50)

EXTSIZ

Added in API level 21
int EXTSIZ

Constant Value: 8 (0x00000008)

LOCCRC

Added in API level 21
int LOCCRC

Constant Value: 14 (0x0000000e)

LOCEXT

Added in API level 21
int LOCEXT

Constant Value: 28 (0x0000001c)

LOCFLG

Added in API level 21
int LOCFLG

Constant Value: 6 (0x00000006)

LOCHDR

Added in API level 21
int LOCHDR

Constant Value: 30 (0x0000001e)

LOCHOW

Added in API level 21
int LOCHOW

Constant Value: 8 (0x00000008)

LOCLEN

Added in API level 21
int LOCLEN

Constant Value: 22 (0x00000016)

LOCNAM

Added in API level 21
int LOCNAM

Constant Value: 26 (0x0000001a)

LOCSIG

Added in API level 21
long LOCSIG

Constant Value: 67324752 (0x0000000004034b50)

LOCSIZ

Added in API level 21
int LOCSIZ

Constant Value: 18 (0x00000012)

LOCTIM

Added in API level 21
int LOCTIM

Constant Value: 10 (0x0000000a)

LOCVER

Added in API level 21
int LOCVER

Constant Value: 4 (0x00000004)

STORED

Added in API level 1
int STORED

Indicates uncompressed entries.

Constant Value: 0 (0x00000000)

Public constructors

ZipOutputStream

Added in API level 1
ZipOutputStream (OutputStream os)

Constructs a new ZipOutputStream that writes a zip file to the given OutputStream.

UTF-8 will be used to encode the file comment, entry names and comments.

Parameters
os OutputStream

Public methods

close

Added in API level 1
void close ()

Closes the current ZipEntry, if any, and the underlying output stream. If the stream is already closed this method does nothing.

Throws
IOException If an error occurs closing the stream.

closeEntry

Added in API level 1
void closeEntry ()

Closes the current ZipEntry. Any entry terminal data is written to the underlying stream.

Throws
IOException If an error occurs closing the entry.

finish

Added in API level 1
void finish ()

Indicates that all entries have been written to the stream. Any terminal information is written to the underlying stream.

Throws
IOException if an error occurs while terminating the stream.

putNextEntry

Added in API level 1
void putNextEntry (ZipEntry ze)

Writes entry information to the underlying stream. Data associated with the entry can then be written using write(). After data is written closeEntry() must be called to complete the writing of the entry to the underlying stream.

Parameters
ze ZipEntry: the ZipEntry to store.
Throws
IOException If an error occurs storing the entry.

See also:

setComment

Added in API level 1
void setComment (String comment)

Sets the comment associated with the file being written. See getComment().

Parameters
comment String
Throws
IllegalArgumentException if the comment is >= 64 Ki encoded bytes.

setLevel

Added in API level 1
void setLevel (int level)

Sets the compression level to be used for writing entry data.

Parameters
level int

setMethod

Added in API level 1
void setMethod (int method)

Sets the default compression method to be used when a ZipEntry doesn't explicitly specify a method. See setMethod(int) for more details.

Parameters
method int

write

Added in API level 1
void write (byte[] buffer, 
                int offset, 
                int byteCount)

Writes data for the current entry to the underlying stream.

Parameters
buffer byte: the buffer to write.
offset int: the index of the first byte in buffer to write.
byteCount int: the number of bytes in buffer to write.
Throws
IOException If an error occurs writing to the stream
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.