ZipInputStream
public
class
ZipInputStream
extends InflaterInputStream
java.lang.Object | ||||
↳ | java.io.InputStream | |||
↳ | java.io.FilterInputStream | |||
↳ | java.util.zip.InflaterInputStream | |||
↳ | java.util.zip.ZipInputStream |
This class implements an input stream filter for reading files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Summary
Constants | |
---|---|
int |
CENATT
Central directory (CEN) header internal file attributes field offset. |
int |
CENATX
Central directory (CEN) header external file attributes field offset. |
int |
CENCOM
Central directory (CEN) header comment length field offset. |
int |
CENCRC
Central directory (CEN) header uncompressed file crc-32 value field offset. |
int |
CENDSK
Central directory (CEN) header disk number start field offset. |
int |
CENEXT
Central directory (CEN) header extra field length field offset. |
int |
CENFLG
Central directory (CEN) header encrypt, decrypt flags field offset. |
int |
CENHDR
Central directory (CEN) header size in bytes (including signature). |
int |
CENHOW
Central directory (CEN) header compression method field offset. |
int |
CENLEN
Central directory (CEN) header uncompressed size field offset. |
int |
CENNAM
Central directory (CEN) header filename length field offset. |
int |
CENOFF
Central directory (CEN) header LOC header offset field offset. |
long |
CENSIG
Central directory (CEN) header signature. |
int |
CENSIZ
Central directory (CEN) header compressed size field offset. |
int |
CENTIM
Central directory (CEN) header modification time field offset. |
int |
CENVEM
Central directory (CEN) header version made by field offset. |
int |
CENVER
Central directory (CEN) header version needed to extract field offset. |
int |
ENDCOM
End of central directory (END) header zip file comment length field offset. |
int |
ENDHDR
End of central directory (END) header size in bytes (including signature). |
int |
ENDOFF
End of central directory (END) header offset for the first CEN header field offset. |
long |
ENDSIG
End of central directory (END) header signature. |
int |
ENDSIZ
End of central directory (END) header central directory size in bytes field offset. |
int |
ENDSUB
End of central directory (END) header number of entries on this disk field offset. |
int |
ENDTOT
End of central directory (END) header total number of entries field offset. |
int |
EXTCRC
Extra local (EXT) header uncompressed file crc-32 value field offset. |
int |
EXTHDR
Extra local (EXT) header size in bytes (including signature). |
int |
EXTLEN
Extra local (EXT) header uncompressed size field offset. |
long |
EXTSIG
Extra local (EXT) header signature. |
int |
EXTSIZ
Extra local (EXT) header compressed size field offset. |
int |
LOCCRC
Local file (LOC) header uncompressed file crc-32 value field offset. |
int |
LOCEXT
Local file (LOC) header extra field length field offset. |
int |
LOCFLG
Local file (LOC) header general purpose bit flag field offset. |
int |
LOCHDR
Local file (LOC) header size in bytes (including signature). |
int |
LOCHOW
Local file (LOC) header compression method field offset. |
int |
LOCLEN
Local file (LOC) header uncompressed size field offset. |
int |
LOCNAM
Local file (LOC) header filename length field offset. |
long |
LOCSIG
Local file (LOC) header signature. |
int |
LOCSIZ
Local file (LOC) header compressed size field offset. |
int |
LOCTIM
Local file (LOC) header modification time field offset. |
int |
LOCVER
Local file (LOC) header version needed to extract field offset. |
Inherited fields |
---|
Public constructors | |
---|---|
ZipInputStream(InputStream in)
Creates a new ZIP input stream. |
|
ZipInputStream(InputStream in, Charset charset)
Creates a new ZIP input stream. |
Public methods | |
---|---|
int
|
available()
Returns 0 after EOF has reached for the current entry data, otherwise always return 1. |
void
|
close()
Closes this input stream and releases any system resources associated with the stream. |
void
|
closeEntry()
Closes the current ZIP entry and positions the stream for reading the next entry. |
ZipEntry
|
getNextEntry()
Reads the next ZIP file entry and positions the stream at the beginning of the entry data. |
int
|
read(byte[] b, int off, int len)
Reads from the current ZIP entry into an array of bytes. |
long
|
skip(long n)
Skips specified number of bytes in the current ZIP entry. |
Protected methods | |
---|---|
ZipEntry
|
createZipEntry(String name)
Creates a new |
Inherited methods | |
---|---|
Constants
CENATT
public static final int CENATT
Central directory (CEN) header internal file attributes field offset.
Constant Value: 36 (0x00000024)
CENATX
public static final int CENATX
Central directory (CEN) header external file attributes field offset.
Constant Value: 38 (0x00000026)
CENCOM
public static final int CENCOM
Central directory (CEN) header comment length field offset.
Constant Value: 32 (0x00000020)
CENCRC
public static final int CENCRC
Central directory (CEN) header uncompressed file crc-32 value field offset.
Constant Value: 16 (0x00000010)
CENDSK
public static final int CENDSK
Central directory (CEN) header disk number start field offset.
Constant Value: 34 (0x00000022)
CENEXT
public static final int CENEXT
Central directory (CEN) header extra field length field offset.
Constant Value: 30 (0x0000001e)
CENFLG
public static final int CENFLG
Central directory (CEN) header encrypt, decrypt flags field offset.
Constant Value: 8 (0x00000008)
CENHDR
public static final int CENHDR
Central directory (CEN) header size in bytes (including signature).
Constant Value: 46 (0x0000002e)
CENHOW
public static final int CENHOW
Central directory (CEN) header compression method field offset.
Constant Value: 10 (0x0000000a)
CENLEN
public static final int CENLEN
Central directory (CEN) header uncompressed size field offset.
Constant Value: 24 (0x00000018)
CENNAM
public static final int CENNAM
Central directory (CEN) header filename length field offset.
Constant Value: 28 (0x0000001c)
CENOFF
public static final int CENOFF
Central directory (CEN) header LOC header offset field offset.
Constant Value: 42 (0x0000002a)
CENSIG
public static final long CENSIG
Central directory (CEN) header signature.
Constant Value: 33639248 (0x0000000002014b50)
CENSIZ
public static final int CENSIZ
Central directory (CEN) header compressed size field offset.
Constant Value: 20 (0x00000014)
CENTIM
public static final int CENTIM
Central directory (CEN) header modification time field offset.
Constant Value: 12 (0x0000000c)
CENVEM
public static final int CENVEM
Central directory (CEN) header version made by field offset.
Constant Value: 4 (0x00000004)
CENVER
public static final int CENVER
Central directory (CEN) header version needed to extract field offset.
Constant Value: 6 (0x00000006)
ENDCOM
public static final int ENDCOM
End of central directory (END) header zip file comment length field offset.
Constant Value: 20 (0x00000014)
ENDHDR
public static final int ENDHDR
End of central directory (END) header size in bytes (including signature).
Constant Value: 22 (0x00000016)
ENDOFF
public static final int ENDOFF
End of central directory (END) header offset for the first CEN header field offset.
Constant Value: 16 (0x00000010)
ENDSIG
public static final long ENDSIG
End of central directory (END) header signature.
Constant Value: 101010256 (0x0000000006054b50)
ENDSIZ
public static final int ENDSIZ
End of central directory (END) header central directory size in bytes field offset.
Constant Value: 12 (0x0000000c)
ENDSUB
public static final int ENDSUB
End of central directory (END) header number of entries on this disk field offset.
Constant Value: 8 (0x00000008)
ENDTOT
public static final int ENDTOT
End of central directory (END) header total number of entries field offset.
Constant Value: 10 (0x0000000a)
EXTCRC
public static final int EXTCRC
Extra local (EXT) header uncompressed file crc-32 value field offset.
Constant Value: 4 (0x00000004)
EXTHDR
public static final int EXTHDR
Extra local (EXT) header size in bytes (including signature).
Constant Value: 16 (0x00000010)
EXTLEN
public static final int EXTLEN
Extra local (EXT) header uncompressed size field offset.
Constant Value: 12 (0x0000000c)
EXTSIG
public static final long EXTSIG
Extra local (EXT) header signature.
Constant Value: 134695760 (0x0000000008074b50)
EXTSIZ
public static final int EXTSIZ
Extra local (EXT) header compressed size field offset.
Constant Value: 8 (0x00000008)
LOCCRC
public static final int LOCCRC
Local file (LOC) header uncompressed file crc-32 value field offset.
Constant Value: 14 (0x0000000e)
LOCEXT
public static final int LOCEXT
Local file (LOC) header extra field length field offset.
Constant Value: 28 (0x0000001c)
LOCFLG
public static final int LOCFLG
Local file (LOC) header general purpose bit flag field offset.
Constant Value: 6 (0x00000006)
LOCHDR
public static final int LOCHDR
Local file (LOC) header size in bytes (including signature).
Constant Value: 30 (0x0000001e)
LOCHOW
public static final int LOCHOW
Local file (LOC) header compression method field offset.
Constant Value: 8 (0x00000008)
LOCLEN
public static final int LOCLEN
Local file (LOC) header uncompressed size field offset.
Constant Value: 22 (0x00000016)
LOCNAM
public static final int LOCNAM
Local file (LOC) header filename length field offset.
Constant Value: 26 (0x0000001a)
LOCSIG
public static final long LOCSIG
Local file (LOC) header signature.
Constant Value: 67324752 (0x0000000004034b50)
LOCSIZ
public static final int LOCSIZ
Local file (LOC) header compressed size field offset.
Constant Value: 18 (0x00000012)
LOCTIM
public static final int LOCTIM
Local file (LOC) header modification time field offset.
Constant Value: 10 (0x0000000a)
LOCVER
public static final int LOCVER
Local file (LOC) header version needed to extract field offset.
Constant Value: 4 (0x00000004)
Public constructors
ZipInputStream
public ZipInputStream (InputStream in)
Creates a new ZIP input stream.
The UTF-8 charset
is used to
decode the entry names.
Parameters | |
---|---|
in |
InputStream : the actual input stream |
ZipInputStream
public ZipInputStream (InputStream in, Charset charset)
Creates a new ZIP input stream.
Parameters | |
---|---|
in |
InputStream : the actual input stream |
charset |
Charset : The charset to be
used to decode the ZIP entry name (ignored if the
language
encoding bit of the ZIP entry's general purpose bit
flag is set). |
Public methods
available
public int available ()
Returns 0 after EOF has reached for the current entry data, otherwise always return 1.
Programs should not count on this method to return the actual number of bytes that could be read without blocking.
Returns | |
---|---|
int |
1 before EOF and 0 after EOF has reached for current entry. |
Throws | |
---|---|
IOException |
if an I/O error occurs. |
close
public void close ()
Closes this input stream and releases any system resources associated with the stream.
Throws | |
---|---|
IOException |
if an I/O error has occurred |
closeEntry
public void closeEntry ()
Closes the current ZIP entry and positions the stream for reading the next entry.
Throws | |
---|---|
ZipException |
if a ZIP file error has occurred |
IOException |
if an I/O error has occurred |
getNextEntry
public ZipEntry getNextEntry ()
Reads the next ZIP file entry and positions the stream at the beginning of the entry data.
If the app targets Android U or above, zip file entry names containing
".." or starting with "/" passed here will throw a ZipException
.
For more details, see ZipPathValidator
.
Returns | |
---|---|
ZipEntry |
the next ZIP file entry, or null if there are no more entries |
Throws | |
---|---|
ZipException |
if (1) a ZIP file error has occurred or
(2) targetSdkVersion >= BUILD.VERSION_CODES.UPSIDE_DOWN_CAKE
and (the name argument contains ".." or starts with "/"). |
IOException |
if an I/O error has occurred |
read
public int read (byte[] b, int off, int len)
Reads from the current ZIP entry into an array of bytes.
If len
is not zero, the method
blocks until some input is available; otherwise, no
bytes are read and 0
is returned.
Parameters | |
---|---|
b |
byte : the buffer into which the data is read |
off |
int : the start offset in the destination array b |
len |
int : the maximum number of bytes read |
Returns | |
---|---|
int |
the actual number of bytes read, or -1 if the end of the entry is reached |
Throws | |
---|---|
NullPointerException |
if b is null . |
IndexOutOfBoundsException |
if off is negative,
len is negative, or len is greater than
b.length - off |
ZipException |
if a ZIP file error has occurred |
IOException |
if an I/O error has occurred |
skip
public long skip (long n)
Skips specified number of bytes in the current ZIP entry.
Parameters | |
---|---|
n |
long : the number of bytes to skip |
Returns | |
---|---|
long |
the actual number of bytes skipped |
Throws | |
---|---|
ZipException |
if a ZIP file error has occurred |
IOException |
if an I/O error has occurred |
IllegalArgumentException |
if n < 0 |
Protected methods
createZipEntry
protected ZipEntry createZipEntry (String name)
Creates a new ZipEntry
object for the specified
entry name.
Parameters | |
---|---|
name |
String : the ZIP file entry name |
Returns | |
---|---|
ZipEntry |
the ZipEntry just created |