Android APIs
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

Class Overview

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.
[Expand]
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.
[Expand]
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

public static final int CENATT

Added in API level 21

Constant Value: 36 (0x00000024)

public static final int CENATX

Added in API level 21

Constant Value: 38 (0x00000026)

public static final int CENCOM

Added in API level 21

Constant Value: 32 (0x00000020)

public static final int CENCRC

Added in API level 21

Constant Value: 16 (0x00000010)

public static final int CENDSK

Added in API level 21

Constant Value: 34 (0x00000022)

public static final int CENEXT

Added in API level 21

Constant Value: 30 (0x0000001e)

public static final int CENFLG

Added in API level 21

Constant Value: 8 (0x00000008)

public static final int CENHDR

Added in API level 21

Constant Value: 46 (0x0000002e)

public static final int CENHOW

Added in API level 21

Constant Value: 10 (0x0000000a)

public static final int CENLEN

Added in API level 21

Constant Value: 24 (0x00000018)

public static final int CENNAM

Added in API level 21

Constant Value: 28 (0x0000001c)

public static final int CENOFF

Added in API level 21

Constant Value: 42 (0x0000002a)

public static final long CENSIG

Added in API level 21

Constant Value: 33639248 (0x0000000002014b50)

public static final int CENSIZ

Added in API level 21

Constant Value: 20 (0x00000014)

public static final int CENTIM

Added in API level 21

Constant Value: 12 (0x0000000c)

public static final int CENVEM

Added in API level 21

Constant Value: 4 (0x00000004)

public static final int CENVER

Added in API level 21

Constant Value: 6 (0x00000006)

public static final int DEFLATED

Added in API level 1

Indicates deflated entries.

Constant Value: 8 (0x00000008)

public static final int ENDCOM

Added in API level 21

Constant Value: 20 (0x00000014)

public static final int ENDHDR

Added in API level 21

Constant Value: 22 (0x00000016)

public static final int ENDOFF

Added in API level 21

Constant Value: 16 (0x00000010)

public static final long ENDSIG

Added in API level 21

Constant Value: 101010256 (0x0000000006054b50)

public static final int ENDSIZ

Added in API level 21

Constant Value: 12 (0x0000000c)

public static final int ENDSUB

Added in API level 21

Constant Value: 8 (0x00000008)

public static final int ENDTOT

Added in API level 21

Constant Value: 10 (0x0000000a)

public static final int EXTCRC

Added in API level 21

Constant Value: 4 (0x00000004)

public static final int EXTHDR

Added in API level 21

Constant Value: 16 (0x00000010)

public static final int EXTLEN

Added in API level 21

Constant Value: 12 (0x0000000c)

public static final long EXTSIG

Added in API level 21

Constant Value: 134695760 (0x0000000008074b50)

public static final int EXTSIZ

Added in API level 21

Constant Value: 8 (0x00000008)

public static final int LOCCRC

Added in API level 21

Constant Value: 14 (0x0000000e)

public static final int LOCEXT

Added in API level 21

Constant Value: 28 (0x0000001c)

public static final int LOCFLG

Added in API level 21

Constant Value: 6 (0x00000006)

public static final int LOCHDR

Added in API level 21

Constant Value: 30 (0x0000001e)

public static final int LOCHOW

Added in API level 21

Constant Value: 8 (0x00000008)

public static final int LOCLEN

Added in API level 21

Constant Value: 22 (0x00000016)

public static final int LOCNAM

Added in API level 21

Constant Value: 26 (0x0000001a)

public static final long LOCSIG

Added in API level 21

Constant Value: 67324752 (0x0000000004034b50)

public static final int LOCSIZ

Added in API level 21

Constant Value: 18 (0x00000012)

public static final int LOCTIM

Added in API level 21

Constant Value: 10 (0x0000000a)

public static final int LOCVER

Added in API level 21

Constant Value: 4 (0x00000004)

public static final int STORED

Added in API level 1

Indicates uncompressed entries.

Constant Value: 0 (0x00000000)

Public Constructors

public ZipOutputStream (OutputStream os)

Added in API level 1

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.

Public Methods

public void close ()

Added in API level 1

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.

public void closeEntry ()

Added in API level 1

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

Throws
IOException If an error occurs closing the entry.

public void finish ()

Added in API level 1

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.

public void putNextEntry (ZipEntry ze)

Added in API level 1

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 the ZipEntry to store.
Throws
IOException If an error occurs storing the entry.
See Also

public void setComment (String comment)

Added in API level 1

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

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

public void setLevel (int level)

Added in API level 1

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

public void setMethod (int method)

Added in API level 1

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

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

Added in API level 1

Writes data for the current entry to the underlying stream.

Parameters
buffer the buffer to write.
offset the index of the first byte in buffer to write.
byteCount the number of bytes in buffer to write.
Throws
IOException If an error occurs writing to the stream