public class ZipFile extends Object implements Closeable
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.
public static final int OPEN_READ
Mode flag to open a zip file for reading.
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.
public static final long LOCSIG
public static final long EXTSIG
public static final long CENSIG
public static final long ENDSIG
public static final int LOCHDR
public static final int EXTHDR
public static final int CENHDR
public static final int ENDHDR
public static final int LOCVER
public static final int LOCFLG
public static final int LOCHOW
public static final int LOCTIM
public static final int LOCCRC
public static final int LOCSIZ
public static final int LOCLEN
public static final int LOCNAM
public static final int LOCEXT
public static final int EXTCRC
public static final int EXTSIZ
public static final int EXTLEN
public static final int CENVEM
public static final int CENVER
public static final int CENFLG
public static final int CENHOW
public static final int CENTIM
public static final int CENCRC
public static final int CENSIZ
public static final int CENLEN
public static final int CENNAM
public static final int CENEXT
public static final int CENCOM
public static final int CENDSK
public static final int CENATT
public static final int CENATX
public static final int CENOFF
public static final int ENDSUB
public static final int ENDTOT
public static final int ENDSIZ
public static final int ENDOFF
public static final int ENDCOM
public ZipFile(String name) throws IOException
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.
name
- the name of the zip fileZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredSecurityException
- if a security manager exists and its checkRead
method doesn't allow read access to the file.SecurityManager.checkRead(java.lang.String)
public ZipFile(File file, int mode) throws IOException
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
file
- the ZIP file to be opened for readingmode
- the mode in which the file is to be openedZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredSecurityException
- 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 invalidSecurityManager.checkRead(java.lang.String)
public ZipFile(File file) throws ZipException, IOException
Opens a ZIP file for reading given the specified File object.
The UTF-8 charset
is used to decode the entry names and comments.
file
- the ZIP file to be opened for readingZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredpublic ZipFile(File file, int mode, Charset charset) throws IOException
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.
file
- the ZIP file to be opened for readingmode
- the mode in which the file is to be openedcharset
- 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).ZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredSecurityException
- 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 setIllegalArgumentException
- if the mode
argument is invalidSecurityManager.checkRead(java.lang.String)
public ZipFile(String name, Charset charset) throws IOException
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.
name
- the name of the zip filecharset
- 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).ZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredSecurityException
- if a security manager exists and its checkRead
method doesn't allow read access to the fileSecurityManager.checkRead(java.lang.String)
public ZipFile(File file, Charset charset) throws IOException
Opens a ZIP file for reading given the specified File object.
file
- the ZIP file to be opened for readingcharset
- 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).ZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredpublic String getComment()
Returns the zip file comment, or null if none.
IllegalStateException
- if the zip file has been closed Since 1.7public ZipEntry getEntry(String name)
Returns the zip file entry for the specified name, or null if not found.
name
- the name of the entryIllegalStateException
- if the zip file has been closedpublic InputStream getInputStream(ZipEntry entry) throws IOException
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.
entry
- the zip file entryZipException
- if a ZIP format error has occurredIOException
- if an I/O error has occurredIllegalStateException
- if the zip file has been closedpublic String getName()
Returns the path name of the ZIP file.
public Enumeration<? extends ZipEntry> entries()
Returns an enumeration of the ZIP file entries.
IllegalStateException
- if the zip file has been closedpublic Stream<? extends ZipEntry> stream()
Return 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.
Stream
of entries in this ZIP fileIllegalStateException
- if the zip file has been closedpublic int size()
Returns the number of entries in the ZIP file.
IllegalStateException
- if the zip file has been closedpublic void close() throws IOException
Closes the ZIP file.
Closing this ZIP file will close all of the input streams previously returned by invocations of the getInputStream
method.
close
in interface Closeable
close
in interface AutoCloseable
IOException
- if an I/O error has occurredprotected void finalize() throws IOException
Ensures that the system resources held by this ZipFile object are released when there are no more references to it.
Since the time when GC would invoke this method is undetermined, it is strongly recommended that applications invoke the close
method as soon they have finished accessing this ZipFile
. This will prevent holding up system resources for an undetermined length of time.
finalize
in class Object
IOException
- if an I/O error has occurredclose()
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.