public class ZipFile extends Object
While ZipInputStream
provides stream based read access to a
ZIP-archive, this class implements more efficient (file based) access
and makes use of the central directory within a ZIP-archive.
Use ZipOutputStream
if you want to create an archive.
A temporary ZIP file can be marked for automatic deletion upon closing it.
ZipEntry
,
ZipOutputStream
Modifier and Type | Field and Description |
---|---|
static int |
CENATT |
static int |
CENATX |
static int |
CENCOM |
static int |
CENCRC |
static int |
CENDSK |
static int |
CENEXT |
static int |
CENFLG |
static int |
CENHDR |
static int |
CENHOW |
static int |
CENLEN |
static int |
CENNAM |
static int |
CENOFF |
static long |
CENSIG |
static int |
CENSIZ |
static int |
CENTIM |
static int |
CENVEM |
static int |
CENVER |
static int |
ENDCOM |
static int |
ENDHDR |
static int |
ENDOFF |
static long |
ENDSIG |
static int |
ENDSIZ |
static int |
ENDSUB |
static int |
ENDTOT |
static int |
EXTCRC |
static int |
EXTHDR |
static int |
EXTLEN |
static long |
EXTSIG |
static int |
EXTSIZ |
static int |
LOCCRC |
static int |
LOCEXT |
static int |
LOCFLG |
static int |
LOCHDR |
static int |
LOCHOW |
static int |
LOCLEN |
static int |
LOCNAM |
static long |
LOCSIG |
static int |
LOCSIZ |
static int |
LOCTIM |
static int |
LOCVER |
static int |
OPEN_DELETE
Delete ZIP file when closed.
|
static int |
OPEN_READ
Open ZIP file for read.
|
Constructor and Description |
---|
ZipFile(File file)
Constructs a new
ZipFile with the specified file. |
ZipFile(File file,
int mode)
Opens a file as ZIP-archive.
|
ZipFile(String name)
Opens a ZIP archived file.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this ZIP file.
|
Enumeration<? extends ZipEntry> |
entries()
Returns an enumeration of the entries.
|
protected void |
finalize()
Invoked when the garbage collector has detected that this instance is no longer reachable.
|
ZipEntry |
getEntry(String entryName)
Gets the ZIP entry with the specified name from this
ZipFile . |
InputStream |
getInputStream(ZipEntry entry)
Returns an input stream on the data of the specified
ZipEntry . |
String |
getName()
Gets the file name of this
ZipFile . |
int |
size()
Returns the number of
ZipEntries in this ZipFile . |
public static final int OPEN_READ
public static final int OPEN_DELETE
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(File file) throws ZipException, IOException
ZipFile
with the specified file.file
- the file to read from.ZipException
- if a ZIP error occurs.IOException
- if an IOException
occurs.public ZipFile(File file, int mode) throws IOException
OPEN_READ
or
OPEN_DELETE
. The latter sets the "delete on exit" flag through a
file.file
- the ZIP file to read.mode
- the mode of the file open operation.IOException
- if an IOException
occurs.public ZipFile(String name) throws IOException
name
- the name of the ZIP file.IOException
- if an IOException occurs.protected void finalize() throws IOException
Object
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.
finalize
in class Object
IOException
public void close() throws IOException
IOException
- if an IOException occurs.public Enumeration<? extends ZipEntry> entries()
IllegalStateException
- if this ZIP file has been closed.public ZipEntry getEntry(String entryName)
ZipFile
.entryName
- the name of the entry in the ZIP file.ZipEntry
or null
if the entry name does not
exist in the ZIP file.IllegalStateException
- if this ZIP file has been closed.public InputStream getInputStream(ZipEntry entry) throws IOException
ZipEntry
.entry
- the ZipEntry.ZipEntry
.IOException
- if an IOException
occurs.IllegalStateException
- if this ZIP file has been closed.public String getName()
ZipFile
.ZipFile
.public int size()
ZipEntries
in this ZipFile
.IllegalStateException
- if this ZIP file has been closed.