Skip to content

Most visited

Recently visited

navigation
Added in API level 1

ZipFile

public class ZipFile
extends Object implements Closeable

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.

Summary

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

ZipFile(File file)

Constructs a new ZipFile allowing read access to the contents of the given file.

ZipFile(String name)

Constructs a new ZipFile allowing read access to the contents of the given file.

ZipFile(File file, int mode)

Constructs a new ZipFile allowing access to the given file.

Public methods

void close()

Closes this zip file.

Enumeration<? extends ZipEntry> entries()

Returns an enumeration of the entries.

String getComment()

Returns this file's comment, or null if it doesn't have one.

ZipEntry getEntry(String entryName)

Returns the zip entry with the given name, or null if there is no such entry.

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.

Protected methods

void finalize()

Invoked when the garbage collector has detected that this instance is no longer reachable.

Inherited methods

From class java.lang.Object
From interface java.io.Closeable
From interface java.lang.AutoCloseable

Constants

CENATT

Added in API level 21
int CENATT

Constant Value: 36 (0x00000024)

CENATX

Added in API level 21
int CENATX

Constant Value: 38 (0x00000026)

CENCOM

Added in API level 21
int CENCOM

Constant Value: 32 (0x00000020)

CENCRC

Added in API level 21
int CENCRC

Constant Value: 16 (0x00000010)

CENDSK

Added in API level 21
int CENDSK

Constant Value: 34 (0x00000022)

CENEXT

Added in API level 21
int CENEXT

Constant Value: 30 (0x0000001e)

CENFLG

Added in API level 21
int CENFLG

Constant Value: 8 (0x00000008)

CENHDR

Added in API level 21
int CENHDR

Constant Value: 46 (0x0000002e)

CENHOW

Added in API level 21
int CENHOW

Constant Value: 10 (0x0000000a)

CENLEN

Added in API level 21
int CENLEN

Constant Value: 24 (0x00000018)

CENNAM

Added in API level 21
int CENNAM

Constant Value: 28 (0x0000001c)

CENOFF

Added in API level 21
int CENOFF

Constant Value: 42 (0x0000002a)

CENSIG

Added in API level 21
long CENSIG

Constant Value: 33639248 (0x0000000002014b50)

CENSIZ

Added in API level 21
int CENSIZ

Constant Value: 20 (0x00000014)

CENTIM

Added in API level 21
int CENTIM

Constant Value: 12 (0x0000000c)

CENVEM

Added in API level 21
int CENVEM

Constant Value: 4 (0x00000004)

CENVER

Added in API level 21
int CENVER

Constant Value: 6 (0x00000006)

ENDCOM

Added in API level 21
int ENDCOM

Constant Value: 20 (0x00000014)

ENDHDR

Added in API level 21
int ENDHDR

Constant Value: 22 (0x00000016)

ENDOFF

Added in API level 21
int ENDOFF

Constant Value: 16 (0x00000010)

ENDSIG

Added in API level 21
long ENDSIG

Constant Value: 101010256 (0x0000000006054b50)

ENDSIZ

Added in API level 21
int ENDSIZ

Constant Value: 12 (0x0000000c)

ENDSUB

Added in API level 21
int ENDSUB

Constant Value: 8 (0x00000008)

ENDTOT

Added in API level 21
int ENDTOT

Constant Value: 10 (0x0000000a)

EXTCRC

Added in API level 21
int EXTCRC

Constant Value: 4 (0x00000004)

EXTHDR

Added in API level 21
int EXTHDR

Constant Value: 16 (0x00000010)

EXTLEN

Added in API level 21
int EXTLEN

Constant Value: 12 (0x0000000c)

EXTSIG

Added in API level 21
long EXTSIG

Constant Value: 134695760 (0x0000000008074b50)

EXTSIZ

Added in API level 21
int EXTSIZ

Constant Value: 8 (0x00000008)

LOCCRC

Added in API level 21
int LOCCRC

Constant Value: 14 (0x0000000e)

LOCEXT

Added in API level 21
int LOCEXT

Constant Value: 28 (0x0000001c)

LOCFLG

Added in API level 21
int LOCFLG

Constant Value: 6 (0x00000006)

LOCHDR

Added in API level 21
int LOCHDR

Constant Value: 30 (0x0000001e)

LOCHOW

Added in API level 21
int LOCHOW

Constant Value: 8 (0x00000008)

LOCLEN

Added in API level 21
int LOCLEN

Constant Value: 22 (0x00000016)

LOCNAM

Added in API level 21
int LOCNAM

Constant Value: 26 (0x0000001a)

LOCSIG

Added in API level 21
long LOCSIG

Constant Value: 67324752 (0x0000000004034b50)

LOCSIZ

Added in API level 21
int LOCSIZ

Constant Value: 18 (0x00000012)

LOCTIM

Added in API level 21
int LOCTIM

Constant Value: 10 (0x0000000a)

LOCVER

Added in API level 21
int LOCVER

Constant Value: 4 (0x00000004)

OPEN_DELETE

Added in API level 1
int OPEN_DELETE

Delete zip file when closed.

Constant Value: 4 (0x00000004)

OPEN_READ

Added in API level 1
int OPEN_READ

Open zip file for reading.

Constant Value: 1 (0x00000001)

Public constructors

ZipFile

Added in API level 1
ZipFile (File file)

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.

Parameters
file File
Throws
ZipException if a zip error occurs.
IOException if an IOException occurs.

ZipFile

Added in API level 1
ZipFile (String name)

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.

Parameters
name String
Throws
IOException if an IOException occurs.

ZipFile

Added in API level 1
ZipFile (File file, 
                int mode)

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.

Parameters
file File
mode int
Throws
IOException if an IOException occurs.

Public methods

close

Added in API level 1
void close ()

Closes this zip file. This method is idempotent. This method may cause I/O if the zip file needs to be deleted.

Throws
IOException if an IOException occurs.

entries

Added in API level 1
Enumeration<? extends ZipEntry> entries ()

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.

Returns
Enumeration<? extends ZipEntry>
Throws
IllegalStateException if this zip file has been closed.

getComment

Added in API level 19
String getComment ()

Returns this file's comment, or null if it doesn't have one. See setComment(String).

Returns
String
Throws
IllegalStateException if this zip file has been closed.

getEntry

Added in API level 1
ZipEntry getEntry (String entryName)

Returns the zip entry with the given name, or null if there is no such entry.

Parameters
entryName String
Returns
ZipEntry
Throws
IllegalStateException if this zip file has been closed.

getInputStream

Added in API level 1
InputStream getInputStream (ZipEntry entry)

Returns an input stream on the data of the specified ZipEntry.

Parameters
entry ZipEntry: the ZipEntry.
Returns
InputStream an input stream of the data contained in the ZipEntry.
Throws
IOException if an IOException occurs.
IllegalStateException if this zip file has been closed.

getName

Added in API level 1
String getName ()

Gets the file name of this ZipFile.

Returns
String the file name of this ZipFile.

size

Added in API level 1
int size ()

Returns the number of ZipEntries in this ZipFile.

Returns
int the number of entries in this file.
Throws
IllegalStateException if this zip file has been closed.

Protected methods

finalize

Added in API level 1
void finalize ()

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.

Throws
IOException
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.