java.lang.Object | ||||
↳ | java.io.InputStream | |||
↳ | java.io.FilterInputStream | |||
↳ | java.util.zip.InflaterInputStream | |||
↳ | java.util.zip.ZipInputStream |
Known Direct Subclasses |
This class provides an implementation of FilterInputStream
that
decompresses data from an InputStream
containing a ZIP archive.
A ZIP archive is a collection of (possibly) compressed files.
When reading from a ZipInputStream
, you retrieve the
entry's metadata with getNextEntry
before you can read the userdata.
Although InflaterInputStream
can only read compressed ZIP archive
entries, this class can read non-compressed entries as well.
Use ZipFile
if you can access the archive as a file directly,
especially if you want random access to entries, rather than needing to
iterate over all entries.
Using ZipInputStream
is a little more complicated than GZIPInputStream
because ZIP archives are containers that can contain multiple files. This code pulls all the
files out of a ZIP archive, 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(); }
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 |
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.util.zip.InflaterInputStream
| |||||||||||
From class
java.io.FilterInputStream
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a new
ZipInputStream from the specified input stream. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns 0 when when this stream has exhausted its input; and 1 otherwise.
| |||||||||||
Closes this
ZipInputStream . | |||||||||||
Closes the current ZIP entry and positions to read the next entry.
| |||||||||||
Reads the next entry from this
ZipInputStream or null if
no more entries are present. | |||||||||||
Reads up to the specified number of uncompressed bytes into the buffer
starting at the offset.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
creates a
ZipEntry with the given name. |
[Expand]
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
|
Constructs a new ZipInputStream
from the specified input stream.
stream | the input stream to representing a ZIP archive. |
---|
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.
IOException |
---|
Closes this ZipInputStream
.
IOException | if an IOException occurs.
|
---|
Closes the current ZIP entry and positions to read the next entry.
IOException | if an IOException occurs.
|
---|
Reads the next entry from this ZipInputStream
or null
if
no more entries are present.
ZipEntry
contained in the input stream.IOException | if an IOException occurs. |
---|
Reads up to the specified number of uncompressed bytes into the buffer starting at the offset.
buffer | the byte array in which to store the bytes read. |
---|---|
offset | the initial position in buffer to store the bytes
read from this stream. |
byteCount | the maximum number of bytes to store in buffer . |
IOException |
---|
creates a ZipEntry
with the given name.
name | the name of the entry. |
---|
ZipEntry
.