public class

ZipFile

extends Object
java.lang.Object
   ↳ java.util.zip.ZipFile
Known Direct Subclasses

Class Overview

This class provides random read access to a ZIP-archive file.

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.

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 read.
Public Constructors
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.
Public Methods
void close()
Closes this ZIP file.
Enumeration<? extends ZipEntry> entries()
Returns an enumeration of the entries.
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.
Protected Methods
void finalize()
Called before the object's memory is reclaimed by the VM.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int CENATT

Since: API Level

Constant Value: 36 (0x00000024)

public static final int CENATX

Since: API Level

Constant Value: 38 (0x00000026)

public static final int CENCOM

Since: API Level

Constant Value: 32 (0x00000020)

public static final int CENCRC

Since: API Level

Constant Value: 16 (0x00000010)

public static final int CENDSK

Since: API Level

Constant Value: 34 (0x00000022)

public static final int CENEXT

Since: API Level

Constant Value: 30 (0x0000001e)

public static final int CENFLG

Since: API Level

Constant Value: 8 (0x00000008)

public static final int CENHDR

Since: API Level

Constant Value: 46 (0x0000002e)

public static final int CENHOW

Since: API Level

Constant Value: 10 (0x0000000a)

public static final int CENLEN

Since: API Level

Constant Value: 24 (0x00000018)

public static final int CENNAM

Since: API Level

Constant Value: 28 (0x0000001c)

public static final int CENOFF

Since: API Level

Constant Value: 42 (0x0000002a)

public static final long CENSIG

Since: API Level

Constant Value: 33639248 (0x0000000002014b50)

public static final int CENSIZ

Since: API Level

Constant Value: 20 (0x00000014)

public static final int CENTIM

Since: API Level

Constant Value: 12 (0x0000000c)

public static final int CENVEM

Since: API Level

Constant Value: 4 (0x00000004)

public static final int CENVER

Since: API Level

Constant Value: 6 (0x00000006)

public static final int ENDCOM

Since: API Level

Constant Value: 20 (0x00000014)

public static final int ENDHDR

Since: API Level

Constant Value: 22 (0x00000016)

public static final int ENDOFF

Since: API Level

Constant Value: 16 (0x00000010)

public static final long ENDSIG

Since: API Level

Constant Value: 101010256 (0x0000000006054b50)

public static final int ENDSIZ

Since: API Level

Constant Value: 12 (0x0000000c)

public static final int ENDSUB

Since: API Level

Constant Value: 8 (0x00000008)

public static final int ENDTOT

Since: API Level

Constant Value: 10 (0x0000000a)

public static final int EXTCRC

Since: API Level

Constant Value: 4 (0x00000004)

public static final int EXTHDR

Since: API Level

Constant Value: 16 (0x00000010)

public static final int EXTLEN

Since: API Level

Constant Value: 12 (0x0000000c)

public static final long EXTSIG

Since: API Level

Constant Value: 134695760 (0x0000000008074b50)

public static final int EXTSIZ

Since: API Level

Constant Value: 8 (0x00000008)

public static final int LOCCRC

Since: API Level

Constant Value: 14 (0x0000000e)

public static final int LOCEXT

Since: API Level

Constant Value: 28 (0x0000001c)

public static final int LOCFLG

Since: API Level

Constant Value: 6 (0x00000006)

public static final int LOCHDR

Since: API Level

Constant Value: 30 (0x0000001e)

public static final int LOCHOW

Since: API Level

Constant Value: 8 (0x00000008)

public static final int LOCLEN

Since: API Level

Constant Value: 22 (0x00000016)

public static final int LOCNAM

Since: API Level

Constant Value: 26 (0x0000001a)

public static final long LOCSIG

Since: API Level

Constant Value: 67324752 (0x0000000004034b50)

public static final int LOCSIZ

Since: API Level

Constant Value: 18 (0x00000012)

public static final int LOCTIM

Since: API Level

Constant Value: 10 (0x0000000a)

public static final int LOCVER

Since: API Level

Constant Value: 4 (0x00000004)

public static final int OPEN_DELETE

Since: API Level 1

Delete ZIP file when closed.

Constant Value: 4 (0x00000004)

public static final int OPEN_READ

Since: API Level 1

Open ZIP file for read.

Constant Value: 1 (0x00000001)

Public Constructors

public ZipFile (File file)

Since: API Level 1

Constructs a new ZipFile with the specified file.

Parameters
file the file to read from.
Throws
ZipException if a ZIP error occurs.
IOException if an IOException occurs.

public ZipFile (File file, int mode)

Since: API Level 1

Opens a file as ZIP-archive. "mode" must be OPEN_READ or OPEN_DELETE . The latter sets the "delete on exit" flag through a file.

Parameters
file the ZIP file to read.
mode the mode of the file open operation.
Throws
IOException if an IOException occurs.

public ZipFile (String name)

Since: API Level 1

Opens a ZIP archived file.

Parameters
name the name of the ZIP file.
Throws
IOException if an IOException occurs.

Public Methods

public void close ()

Since: API Level 1

Closes this ZIP file. This method is idempotent.

Throws
IOException if an IOException occurs.

public Enumeration<? extends ZipEntry> entries ()

Since: API Level 1

Returns an enumeration of the entries. The entries are listed in the order in which they appear in the ZIP archive.

Returns
  • the enumeration of the entries.
Throws
IllegalStateException if this ZIP file has been closed.

public ZipEntry getEntry (String entryName)

Since: API Level 1

Gets the ZIP entry with the specified name from this ZipFile.

Parameters
entryName the name of the entry in the ZIP file.
Returns
  • a ZipEntry or null if the entry name does not exist in the ZIP file.
Throws
IllegalStateException if this ZIP file has been closed.

public InputStream getInputStream (ZipEntry entry)

Since: API Level 1

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

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

public String getName ()

Since: API Level 1

Gets the file name of this ZipFile.

Returns
  • the file name of this ZipFile.

public int size ()

Since: API Level 1

Returns the number of ZipEntries in this ZipFile.

Returns
  • the number of entries in this file.
Throws
IllegalStateException if this ZIP file has been closed.

Protected Methods

protected void finalize ()

Since: API Level 1

Called before the object's memory is reclaimed by the VM. This can only happen once the garbage collector has detected that the object is no longer reachable by any thread of the running application.

The method can be used to free system resources or perform other cleanup before the object is garbage collected. The default implementation of the method is empty, which is also expected by the VM, but subclasses can override finalize() as required. Uncaught exceptions which are thrown during the execution of this method cause it to terminate immediately but are otherwise ignored.

Note that the VM does guarantee that finalize() is called at most once for any object, but it doesn't guarantee when (if at all) finalize() will be called. For example, object B's finalize() can delay the execution of object A's finalize() method and therefore it can delay the reclamation of A's memory. To be safe, use a ReferenceQueue, because it provides more control over the way the VM deals with references during garbage collection.

Throws
IOException