java.lang.Object | |
↳ | java.util.zip.ZipFile |
Known Direct Subclasses |
This class provides random read access to a zip file. You pay more to read
the zip file's central directory up front (from the constructor), but if you're using
getEntry(String)
to look up multiple files by name, you get the benefit of this index.
If you only want to iterate through all the files (using entries()
, you should
consider ZipInputStream
, which provides stream-like read access to a zip file and
has a lower up-front cost because you don't pay to build an in-memory index.
If you want to create a zip file, use ZipOutputStream
. There is no API for updating
an existing zip file.
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 | ||||||||||
int | OPEN_DELETE | Delete zip file when closed. | |||||||||
int | OPEN_READ | Open zip file for reading. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs a new
ZipFile allowing read access to the contents of the given file.
| |||||||||||
Constructs a new
ZipFile allowing read access to the contents of the given file.
| |||||||||||
Constructs a new
ZipFile allowing access to the given file.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Closes this zip file.
| |||||||||||
Returns an enumeration of the entries.
| |||||||||||
Returns this file's comment, or null if it doesn't have one.
| |||||||||||
Returns the zip entry with the given name, or null if there is no such entry.
| |||||||||||
Returns an input stream on the data of the specified
ZipEntry .
| |||||||||||
Gets the file name of this
ZipFile .
| |||||||||||
Returns the number of
ZipEntries in this ZipFile .
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
From interface
java.io.Closeable
| |||||||||||
From interface
java.lang.AutoCloseable
|
Delete zip file when closed.
Open zip file for reading.
Constructs a new ZipFile
allowing read access to the contents of the given file.
UTF-8 is used to decode all comments and entry names in the file.
ZipException | if a zip error occurs. |
---|---|
IOException | if an IOException occurs.
|
Constructs a new ZipFile
allowing read access to the contents of the given file.
UTF-8 is used to decode all comments and entry names in the file.
IOException | if an IOException occurs. |
---|
Constructs a new ZipFile
allowing access to the given file.
UTF-8 is used to decode all comments and entry names in the file.
The mode
must be either OPEN_READ
or OPEN_READ|OPEN_DELETE
.
If the OPEN_DELETE
flag is supplied, the file will be deleted at or before the
time that the ZipFile
is closed (the contents will remain accessible until
this ZipFile
is closed); it also calls File.deleteOnExit
.
IOException | if an IOException occurs.
|
---|
Closes this zip file. This method is idempotent. This method may cause I/O if the zip file needs to be deleted.
IOException | if an IOException occurs. |
---|
Returns an enumeration of the entries. The entries are listed in the order in which they appear in the zip file.
If you only need to iterate over the entries in a zip file, and don't
need random-access entry lookup by name, you should probably use ZipInputStream
instead, to avoid paying to construct the in-memory index.
IllegalStateException | if this zip file has been closed. |
---|
Returns this file's comment, or null if it doesn't have one.
See setComment(String)
.
IllegalStateException | if this zip file has been closed. |
---|
Returns the zip entry with the given name, or null if there is no such entry.
IllegalStateException | if this zip file has been closed. |
---|
Returns an input stream on the data of the specified ZipEntry
.
entry | the ZipEntry. |
---|
ZipEntry
.IOException | if an IOException occurs. |
---|---|
IllegalStateException | if this zip file has been closed. |
Gets the file name of this ZipFile
.
ZipFile
.
Returns the number of ZipEntries
in this ZipFile
.
IllegalStateException | if this zip file has been closed. |
---|
Invoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.
Note that objects that override finalize
are significantly more expensive than
objects that don't. Finalizers may be run a long time after the object is no longer
reachable, depending on memory pressure, so it's a bad idea to rely on them for cleanup.
Note also that finalizers are run on a single VM-wide finalizer thread,
so doing blocking work in a finalizer is a bad idea. A finalizer is usually only necessary
for a class that has a native peer and needs to call a native method to destroy that peer.
Even then, it's better to provide an explicit close
method (and implement
Closeable
), and insist that callers manually dispose of instances. This
works well for something like files, but less well for something like a BigInteger
where typical calling code would have to deal with lots of temporaries. Unfortunately,
code that creates lots of temporaries is the worst kind of code from the point of view of
the single finalizer thread.
If you must use finalizers, consider at least providing your own
ReferenceQueue
and having your own thread process that queue.
Unlike constructors, finalizers are not automatically chained. You are responsible for
calling super.finalize()
yourself.
Uncaught exceptions thrown by finalizers are ignored and do not terminate the finalizer thread. See Effective Java Item 7, "Avoid finalizers" for more.
IOException |
---|