java.util.zip

Class ZipFile

public class ZipFile extends Object implements ZipConstants

This class represents a Zip archive. You can ask for the contained entries, or get an input stream for a file entry. The entry is automatically decompressed. This class is thread safe: You can open input streams for arbitrary entries in different threads.
Field Summary
static intOPEN_DELETE
Mode flag to delete a zip file after reading.
static intOPEN_READ
Mode flag to open a zip file for reading.
Constructor Summary
ZipFile(String name)
Opens a Zip file with the given name for reading.
ZipFile(File file)
Opens a Zip file reading the given File.
ZipFile(File file, int mode)
Opens a Zip file reading the given File in the given mode.
Method Summary
voidclose()
Closes the ZipFile.
Enumeration<? extends ZipEntry>entries()
Returns an enumeration of all Zip entries in this Zip file.
protected voidfinalize()
Calls the close() method when this ZipFile has not yet been explicitly closed.
ZipEntrygetEntry(String name)
Searches for a zip entry in this archive with the given name.
InputStreamgetInputStream(ZipEntry entry)
Creates an input stream reading the given zip entry as uncompressed data.
StringgetName()
Returns the (path) name of this zip file.
intsize()
Returns the number of entries in this zip file.

Field Detail

OPEN_DELETE

public static final int OPEN_DELETE
Mode flag to delete a zip file after reading.

OPEN_READ

public static final int OPEN_READ
Mode flag to open a zip file for reading.

Constructor Detail

ZipFile

public ZipFile(String name)
Opens a Zip file with the given name for reading.

Throws: IOException if a i/o error occured. ZipException if the file doesn't contain a valid zip archive.

ZipFile

public ZipFile(File file)
Opens a Zip file reading the given File.

Throws: IOException if a i/o error occured. ZipException if the file doesn't contain a valid zip archive.

ZipFile

public ZipFile(File file, int mode)
Opens a Zip file reading the given File in the given mode. If the OPEN_DELETE mode is specified, the zip file will be deleted at some time moment after it is opened. It will be deleted before the zip file is closed or the Virtual Machine exits. The contents of the zip file will be accessible until it is closed.

Parameters: mode Must be one of OPEN_READ or OPEN_READ | OPEN_DELETE

Throws: IOException if a i/o error occured. ZipException if the file doesn't contain a valid zip archive.

Since: JDK1.3

Method Detail

close

public void close()
Closes the ZipFile. This also closes all input streams given by this class. After this is called, no further method should be called.

Throws: IOException if a i/o error occured.

entries

public Enumeration<? extends ZipEntry> entries()
Returns an enumeration of all Zip entries in this Zip file.

Throws: IllegalStateException when the ZipFile has already been closed

finalize

protected void finalize()
Calls the close() method when this ZipFile has not yet been explicitly closed.

getEntry

public ZipEntry getEntry(String name)
Searches for a zip entry in this archive with the given name.

Parameters: name the name. May contain directory components separated by slashes ('/').

Returns: the zip entry, or null if no entry with that name exists.

Throws: IllegalStateException when the ZipFile has already been closed

getInputStream

public InputStream getInputStream(ZipEntry entry)
Creates an input stream reading the given zip entry as uncompressed data. Normally zip entry should be an entry returned by getEntry() or entries(). This implementation returns null if the requested entry does not exist. This decision is not obviously correct, however, it does appear to mirror Sun's implementation, and it is consistant with their javadoc. On the other hand, the old JCL book, 2nd Edition, claims that this should return a "non-null ZIP entry". We have chosen for now ignore the old book, as modern versions of Ant (an important application) depend on this behaviour. See discussion in this thread: http://gcc.gnu.org/ml/java-patches/2004-q2/msg00602.html

Parameters: entry the entry to create an InputStream for.

Returns: the input stream, or null if the requested entry does not exist.

Throws: IllegalStateException when the ZipFile has already been closed IOException if a i/o error occured. ZipException if the Zip archive is malformed.

getName

public String getName()
Returns the (path) name of this zip file.

size

public int size()
Returns the number of entries in this zip file.

Throws: IllegalStateException when the ZipFile has already been closed