Skip to content

Most visited

Recently visited

navigation
Added in API level 1

ZipInputStream

public class ZipInputStream
extends InflaterInputStream

java.lang.Object
   ↳ java.io.InputStream
     ↳ java.io.FilterInputStream
       ↳ java.util.zip.InflaterInputStream
         ↳ java.util.zip.ZipInputStream
Known Direct Subclasses


Used to read (decompress) the data from zip files.

A zip file (or "archive") is a collection of (possibly) compressed files. When reading from a ZipInputStream, you call getNextEntry() which returns a ZipEntry of metadata corresponding to the userdata that follows. When you appear to have hit the end of this stream (which is really just the end of the current entry's userdata), call getNextEntry again. When it returns null, there are no more entries in the input file.

Although InflaterInputStream can only read compressed zip entries, this class can read non-compressed entries as well.

Use ZipFile if you need random access to entries by name, but use this class if you just want to iterate over all entries.

Example

Using ZipInputStream is a little more complicated than GZIPInputStream because zip files are containers that can contain multiple files. This code pulls all the files out of a zip file, similar to the unzip(1) utility.

 InputStream is = ...
 ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));
 try {
     ZipEntry ze;
     while ((ze = zis.getNextEntry()) != null) {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         byte[] buffer = new byte[1024];
         int count;
         while ((count = zis.read(buffer)) != -1) {
             baos.write(buffer, 0, count);
         }
         String filename = ze.getName();
         byte[] bytes = baos.toByteArray();
         // do something with 'filename' and 'bytes'...
     }
 } finally {
     zis.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 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

Inherited fields

From class java.util.zip.InflaterInputStream
From class java.io.FilterInputStream

Public constructors

ZipInputStream(InputStream stream)

Constructs a new ZipInputStream to read zip entries from the given input stream.

Public methods

int available()

Returns 0 when when this stream has exhausted its input; and 1 otherwise.

void close()

Closes this ZipInputStream.

void closeEntry()

Closes the current zip entry and prepares to read the next entry.

ZipEntry getNextEntry()

Returns the next entry from this ZipInputStream or null if no more entries are present.

int read(byte[] buffer, int byteOffset, int byteCount)

Reads up to byteCount uncompressed bytes into the buffer starting at byteOffset.

Protected methods

ZipEntry createZipEntry(String name)

creates a ZipEntry with the given name.

Inherited methods

From class java.util.zip.InflaterInputStream
From class java.io.FilterInputStream
From class java.io.InputStream
From class java.lang.Object
From interface java.io.Closeable
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)

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)

Public constructors

ZipInputStream

Added in API level 1
ZipInputStream (InputStream stream)

Constructs a new ZipInputStream to read zip entries from the given input stream.

UTF-8 is used to decode all strings in the file.

Parameters
stream InputStream

Public methods

available

Added in API level 1
int available ()

Returns 0 when when this stream has exhausted its input; and 1 otherwise. A result of 1 does not guarantee that further bytes can be returned, with or without blocking.

Although consistent with the RI, this behavior is inconsistent with available(), and violates the Liskov Substitution Principle. This method should not be used.

Returns
int 0 if no further bytes are available. Otherwise returns 1, which suggests (but does not guarantee) that additional bytes are available.
Throws
IOException

close

Added in API level 1
void close ()

Closes this ZipInputStream.

Throws
IOException if an IOException occurs.

closeEntry

Added in API level 1
void closeEntry ()

Closes the current zip entry and prepares to read the next entry.

Throws
IOException if an IOException occurs.

getNextEntry

Added in API level 1
ZipEntry getNextEntry ()

Returns the next entry from this ZipInputStream or null if no more entries are present.

Returns
ZipEntry
Throws
IOException if an IOException occurs.

read

Added in API level 1
int read (byte[] buffer, 
                int byteOffset, 
                int byteCount)

Reads up to byteCount uncompressed bytes into the buffer starting at byteOffset. Returns the number of bytes actually read, or -1.

Parameters
buffer byte
byteOffset int
byteCount int
Returns
int
Throws
IOException

Protected methods

createZipEntry

Added in API level 1
ZipEntry createZipEntry (String name)

creates a ZipEntry with the given name.

Parameters
name String: the name of the entry.
Returns
ZipEntry the created ZipEntry.
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.