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(File file) Opens a ZIP file for reading given the specified File object. | |
ZipFile(File file, int mode) Opens a new | |
ZipFile(File file, int mode, Charset charset) Opens a new | |
ZipFile(File file, Charset charset) Opens a ZIP file for reading given the specified File object. | |
ZipFile(String name) Opens a zip file for reading. | |
ZipFile(String name, Charset charset) Opens a zip file for reading. |
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 (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)
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, 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 (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 |
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 (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 |
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 |