ZipFile
public
class
ZipFile
extends Object
implements
Closeable
java.lang.Object | |
↳ | java.util.zip.ZipFile |
This class is used to read entries from a zip file.
Unless otherwise noted, passing a null
argument to a constructor
or method in this class will cause a NullPointerException
to be
thrown.
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. |
int |
OPEN_DELETE
Mode flag to open a zip file and mark it for deletion. |
int |
OPEN_READ
Mode flag to open a zip file for reading. |
Public constructors | |
---|---|
ZipFile(String name)
Opens a zip file for reading. |
|
ZipFile(File file, int mode)
Opens a new |
|
ZipFile(File file)
Opens a ZIP file for reading given the specified File object. |
|
ZipFile(File file, int mode, Charset charset)
Opens a new |
|
ZipFile(String name, Charset charset)
Opens a zip file for reading. |
|
ZipFile(File file, Charset charset)
Opens a ZIP file for reading given the specified File object. |
Public methods | |
---|---|
void
|
close()
Closes the ZIP file. |
Enumeration<? extends ZipEntry>
|
entries()
Returns an enumeration of the ZIP file entries. |
String
|
getComment()
Returns the zip file comment, or null if none. |
ZipEntry
|
getEntry(String name)
Returns the zip file entry for the specified name, or null if not found. |
InputStream
|
getInputStream(ZipEntry entry)
Returns an input stream for reading the contents of the specified zip file entry. |
String
|
getName()
Returns the path name of the ZIP file. |
int
|
size()
Returns the number of entries in the ZIP file. |
Stream<? extends ZipEntry>
|
stream()
Returns an ordered |
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)
OPEN_DELETE
public static final int OPEN_DELETE
Mode flag to open a zip file and mark it for deletion. The file will be
deleted some time between the moment that it is opened and the moment
that it is closed, but its contents will remain accessible via the
ZipFile
object until either the close method is invoked or the
virtual machine exits.
Constant Value: 4 (0x00000004)
OPEN_READ
public static final int OPEN_READ
Mode flag to open a zip file for reading.
Constant Value: 1 (0x00000001)
Public constructors
ZipFile
public ZipFile (String name)
Opens a zip file for reading.
First, if there is a security manager, its checkRead
method is called with the name
argument as its argument
to ensure the read is allowed.
The UTF-8 charset
is used to
decode the entry names and comments.
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
.
Parameters | |
---|---|
name |
String : the name of the zip file |
Throws | |
---|---|
ZipException |
if (1) a ZIP format 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 |
SecurityException |
if a security manager exists and its
checkRead method doesn't allow read access to the file. |
ZipFile
public ZipFile (File file, int mode)
Opens a new ZipFile
to read from the specified
File
object in the specified mode. The mode argument
must be either OPEN_READ
or OPEN_READ | OPEN_DELETE
.
First, if there is a security manager, its checkRead
method is called with the name
argument as its argument to
ensure the read is allowed.
The UTF-8 charset
is used to
decode the entry names and comments
Parameters | |
---|---|
file |
File : the ZIP file to be opened for reading |
mode |
int : the mode in which the file is to be opened |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
SecurityException |
if a security manager exists and
its checkRead method
doesn't allow read access to the file,
or its checkDelete method doesn't allow deleting
the file when the OPEN_DELETE flag is set. |
IllegalArgumentException |
if the mode argument is invalid |
ZipFile
public ZipFile (File file)
Opens a ZIP file for reading given the specified File object.
The UTF-8 charset
is used to
decode the entry names and comments.
Parameters | |
---|---|
file |
File : the ZIP file to be opened for reading |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
ZipFile
public ZipFile (File file, int mode, Charset charset)
Opens a new ZipFile
to read from the specified
File
object in the specified mode. The mode argument
must be either OPEN_READ
or OPEN_READ | OPEN_DELETE
.
First, if there is a security manager, its checkRead
method is called with the name
argument as its argument to
ensure the read is allowed.
Parameters | |
---|---|
file |
File : the ZIP file to be opened for reading |
mode |
int : the mode in which the file is to be opened |
charset |
Charset : the charset to
be used to decode the ZIP entry name and comment that are not
encoded by using UTF-8 encoding (indicated by entry's general
purpose flag). |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
SecurityException |
if a security manager exists and its checkRead
method doesn't allow read access to the file,or its
checkDelete method doesn't allow deleting the
file when the OPEN_DELETE flag is set |
IllegalArgumentException |
if the mode argument is invalid |
ZipFile
public ZipFile (String name, Charset charset)
Opens a zip file for reading.
First, if there is a security manager, its checkRead
method is called with the name
argument as its argument
to ensure the read is allowed.
Parameters | |
---|---|
name |
String : the name of the zip file |
charset |
Charset : the charset to
be used to decode the ZIP entry name and comment that are not
encoded by using UTF-8 encoding (indicated by entry's general
purpose flag). |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
SecurityException |
if a security manager exists and its checkRead
method doesn't allow read access to the file |
ZipFile
public ZipFile (File file, Charset charset)
Opens a ZIP file for reading given the specified File object.
Parameters | |
---|---|
file |
File : the ZIP file to be opened for reading |
charset |
Charset : The charset to be
used to decode the ZIP entry name and comment (ignored if
the language
encoding bit of the ZIP entry's general purpose bit
flag is set). |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
Public methods
close
public void close ()
Closes the ZIP file.
Closing this ZIP file will close all of the input streams
previously returned by invocations of the getInputStream
method.
Throws | |
---|---|
IOException |
if an I/O error has occurred |
entries
public Enumeration<? extends ZipEntry> entries ()
Returns an enumeration of the ZIP file entries.
Returns | |
---|---|
Enumeration<? extends ZipEntry> |
an enumeration of the ZIP file entries |
Throws | |
---|---|
IllegalStateException |
if the zip file has been closed |
getComment
public String getComment ()
Returns the zip file comment, or null if none.
Returns | |
---|---|
String |
the comment string for the zip file, or null if none |
Throws | |
---|---|
IllegalStateException |
if the zip file has been closed |
getEntry
public ZipEntry getEntry (String name)
Returns the zip file entry for the specified name, or null if not found.
Parameters | |
---|---|
name |
String : the name of the entry |
Returns | |
---|---|
ZipEntry |
the zip file entry, or null if not found |
Throws | |
---|---|
IllegalStateException |
if the zip file has been closed |
getInputStream
public InputStream getInputStream (ZipEntry entry)
Returns an input stream for reading the contents of the specified zip file entry.
Closing this ZIP file will, in turn, close all input streams that have been returned by invocations of this method.
Parameters | |
---|---|
entry |
ZipEntry : the zip file entry |
Returns | |
---|---|
InputStream |
the input stream for reading the contents of the specified zip file entry. |
Throws | |
---|---|
ZipException |
if a ZIP format error has occurred |
IOException |
if an I/O error has occurred |
IllegalStateException |
if the zip file has been closed |
getName
public String getName ()
Returns the path name of the ZIP file.
Returns | |
---|---|
String |
the path name of the ZIP file |
size
public int size ()
Returns the number of entries in the ZIP file.
Returns | |
---|---|
int |
the number of entries in the ZIP file |
Throws | |
---|---|
IllegalStateException |
if the zip file has been closed |
stream
public Stream<? extends ZipEntry> stream ()
Returns an ordered Stream
over the ZIP file entries.
Entries appear in the Stream
in the order they appear in
the central directory of the ZIP file.
Returns | |
---|---|
Stream<? extends ZipEntry> |
an ordered Stream of entries in this ZIP file |
Throws | |
---|---|
IllegalStateException |
if the zip file has been closed |