Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/java/util/zip/ZipFile#constants) \| [Ctors](https://developer.android.com/reference/java/util/zip/ZipFile#pubctors) \| [Methods](https://developer.android.com/reference/java/util/zip/ZipFile#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/zip/ZipFile#inhmethods)

# ZipFile

` public class ZipFile `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/java/io/Closeable `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.util.zip.ZipFile |

Known direct subclasses [JarFile](https://developer.android.com/reference/java/util/jar/JarFile) [JarFile](https://developer.android.com/reference/java/util/jar/JarFile) The `JarFile` class is used to read the contents of a jar file from any file that can be opened with `java.io.RandomAccessFile`.   

*** ** * ** ***

This class is used to read entries from a zip file.

Unless otherwise noted, passing a `null` argument to a constructor or method in this class will cause a `https://developer.android.com/reference/java/lang/NullPointerException` to be thrown.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENATT` Central directory (CEN) header internal file attributes field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENATX` Central directory (CEN) header external file attributes field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENCOM` Central directory (CEN) header comment length field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENCRC` Central directory (CEN) header uncompressed file crc-32 value field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENDSK` Central directory (CEN) header disk number start field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENEXT` Central directory (CEN) header extra field length field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENFLG` Central directory (CEN) header encrypt, decrypt flags field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENHDR` Central directory (CEN) header size in bytes (including signature). |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENHOW` Central directory (CEN) header compression method field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENLEN` Central directory (CEN) header uncompressed size field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENNAM` Central directory (CEN) header filename length field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENOFF` Central directory (CEN) header LOC header offset field offset. |
| `long` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENSIG` Central directory (CEN) header signature. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENSIZ` Central directory (CEN) header compressed size field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENTIM` Central directory (CEN) header modification time field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENVEM` Central directory (CEN) header version made by field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#CENVER` Central directory (CEN) header version needed to extract field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDCOM` End of central directory (END) header zip file comment length field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDHDR` End of central directory (END) header size in bytes (including signature). |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDOFF` End of central directory (END) header offset for the first CEN header field offset. |
| `long` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDSIG` End of central directory (END) header signature. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDSIZ` End of central directory (END) header central directory size in bytes field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDSUB` End of central directory (END) header number of entries on this disk field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#ENDTOT` End of central directory (END) header total number of entries field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#EXTCRC` Extra local (EXT) header uncompressed file crc-32 value field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#EXTHDR` Extra local (EXT) header size in bytes (including signature). |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#EXTLEN` Extra local (EXT) header uncompressed size field offset. |
| `long` | `https://developer.android.com/reference/java/util/zip/ZipFile#EXTSIG` Extra local (EXT) header signature. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#EXTSIZ` Extra local (EXT) header compressed size field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCCRC` Local file (LOC) header uncompressed file crc-32 value field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCEXT` Local file (LOC) header extra field length field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCFLG` Local file (LOC) header general purpose bit flag field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCHDR` Local file (LOC) header size in bytes (including signature). |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCHOW` Local file (LOC) header compression method field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCLEN` Local file (LOC) header uncompressed size field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCNAM` Local file (LOC) header filename length field offset. |
| `long` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCSIG` Local file (LOC) header signature. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCSIZ` Local file (LOC) header compressed size field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCTIM` Local file (LOC) header modification time field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#LOCVER` Local file (LOC) header version needed to extract field offset. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#OPEN_DELETE` Mode flag to open a zip file and mark it for deletion. |
| `int` | `https://developer.android.com/reference/java/util/zip/ZipFile#OPEN_READ` Mode flag to open a zip file for reading. |

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.io.File)(https://developer.android.com/reference/java/io/File file) ` Opens a ZIP file for reading given the specified File object. |
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.io.File,%20int)(https://developer.android.com/reference/java/io/File file, int mode) ` Opens a new `ZipFile` to read from the specified `File` object in the specified mode. |
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.io.File,%20int,%20java.nio.charset.Charset)(https://developer.android.com/reference/java/io/File file, int mode, https://developer.android.com/reference/java/nio/charset/Charset charset) ` Opens a new `ZipFile` to read from the specified `File` object in the specified mode. |
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.io.File,%20java.nio.charset.Charset)(https://developer.android.com/reference/java/io/File file, https://developer.android.com/reference/java/nio/charset/Charset charset) ` Opens a ZIP file for reading given the specified File object. |
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Opens a zip file for reading. |
| ` https://developer.android.com/reference/java/util/zip/ZipFile#ZipFile(java.lang.String,%20java.nio.charset.Charset)(https://developer.android.com/reference/java/lang/String name, https://developer.android.com/reference/java/nio/charset/Charset charset) ` Opens a zip file for reading. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipFile#close()() ` Closes the ZIP file. |
| ` https://developer.android.com/reference/java/util/Enumeration<? extends https://developer.android.com/reference/java/util/zip/ZipEntry>` | ` https://developer.android.com/reference/java/util/zip/ZipFile#entries()() ` Returns an enumeration of the ZIP file entries. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/util/zip/ZipFile#getComment()() ` Returns the zip file comment, or null if none. |
| ` https://developer.android.com/reference/java/util/zip/ZipEntry` | ` https://developer.android.com/reference/java/util/zip/ZipFile#getEntry(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Returns the zip file entry for the specified name, or null if not found. |
| ` https://developer.android.com/reference/java/io/InputStream` | ` https://developer.android.com/reference/java/util/zip/ZipFile#getInputStream(java.util.zip.ZipEntry)(https://developer.android.com/reference/java/util/zip/ZipEntry entry) ` Returns an input stream for reading the contents of the specified zip file entry. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/util/zip/ZipFile#getName()() ` Returns the path name of the ZIP file. |
| ` int` | ` https://developer.android.com/reference/java/util/zip/ZipFile#size()() ` Returns the number of entries in the ZIP file. |
| ` https://developer.android.com/reference/java/util/stream/Stream<? extends https://developer.android.com/reference/java/util/zip/ZipEntry>` | ` https://developer.android.com/reference/java/util/zip/ZipFile#stream()() ` Returns an ordered `Stream` over the ZIP file entries. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/io/Closeable ` ` abstract void` ` https://developer.android.com/reference/java/io/Closeable#close()() `

Closes this stream and releases any system resources associated with it.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Constants

### CENATT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENATT
```

Central directory (CEN) header internal file attributes field offset.

<br />

Constant Value: 36 (0x00000024)

### CENATX

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENATX
```

Central directory (CEN) header external file attributes field offset.

<br />

Constant Value: 38 (0x00000026)

### CENCOM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENCOM
```

Central directory (CEN) header comment length field offset.

<br />

Constant Value: 32 (0x00000020)

### CENCRC

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENCRC
```

Central directory (CEN) header uncompressed file crc-32 value field offset.

<br />

Constant Value: 16 (0x00000010)

### CENDSK

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENDSK
```

Central directory (CEN) header disk number start field offset.

<br />

Constant Value: 34 (0x00000022)

### CENEXT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENEXT
```

Central directory (CEN) header extra field length field offset.

<br />

Constant Value: 30 (0x0000001e)

### CENFLG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENFLG
```

Central directory (CEN) header encrypt, decrypt flags field offset.

<br />

Constant Value: 8 (0x00000008)

### CENHDR

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENHDR
```

Central directory (CEN) header size in bytes (including signature).

<br />

Constant Value: 46 (0x0000002e)

### CENHOW

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENHOW
```

Central directory (CEN) header compression method field offset.

<br />

Constant Value: 10 (0x0000000a)

### CENLEN

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENLEN
```

Central directory (CEN) header uncompressed size field offset.

<br />

Constant Value: 24 (0x00000018)

### CENNAM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENNAM
```

Central directory (CEN) header filename length field offset.

<br />

Constant Value: 28 (0x0000001c)

### CENOFF

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENOFF
```

Central directory (CEN) header LOC header offset field offset.

<br />

Constant Value: 42 (0x0000002a)

### CENSIG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long CENSIG
```

Central directory (CEN) header signature.

<br />

Constant Value: 33639248 (0x0000000002014b50)

### CENSIZ

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENSIZ
```

Central directory (CEN) header compressed size field offset.

<br />

Constant Value: 20 (0x00000014)

### CENTIM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENTIM
```

Central directory (CEN) header modification time field offset.

<br />

Constant Value: 12 (0x0000000c)

### CENVEM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENVEM
```

Central directory (CEN) header version made by field offset.

<br />

Constant Value: 4 (0x00000004)

### CENVER

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int CENVER
```

Central directory (CEN) header version needed to extract field offset.

<br />

Constant Value: 6 (0x00000006)

### ENDCOM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDCOM
```

End of central directory (END) header zip file comment length field offset.

<br />

Constant Value: 20 (0x00000014)

### ENDHDR

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDHDR
```

End of central directory (END) header size in bytes (including signature).

<br />

Constant Value: 22 (0x00000016)

### ENDOFF

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDOFF
```

End of central directory (END) header offset for the first CEN header field offset.

<br />

Constant Value: 16 (0x00000010)

### ENDSIG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long ENDSIG
```

End of central directory (END) header signature.

<br />

Constant Value: 101010256 (0x0000000006054b50)

### ENDSIZ

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDSIZ
```

End of central directory (END) header central directory size in bytes field offset.

<br />

Constant Value: 12 (0x0000000c)

### ENDSUB

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDSUB
```

End of central directory (END) header number of entries on this disk field offset.

<br />

Constant Value: 8 (0x00000008)

### ENDTOT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int ENDTOT
```

End of central directory (END) header total number of entries field offset.

<br />

Constant Value: 10 (0x0000000a)

### EXTCRC

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int EXTCRC
```

Extra local (EXT) header uncompressed file crc-32 value field offset.

<br />

Constant Value: 4 (0x00000004)

### EXTHDR

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int EXTHDR
```

Extra local (EXT) header size in bytes (including signature).

<br />

Constant Value: 16 (0x00000010)

### EXTLEN

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int EXTLEN
```

Extra local (EXT) header uncompressed size field offset.

<br />

Constant Value: 12 (0x0000000c)

### EXTSIG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long EXTSIG
```

Extra local (EXT) header signature.

<br />

Constant Value: 134695760 (0x0000000008074b50)

### EXTSIZ

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int EXTSIZ
```

Extra local (EXT) header compressed size field offset.

<br />

Constant Value: 8 (0x00000008)

### LOCCRC

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCCRC
```

Local file (LOC) header uncompressed file crc-32 value field offset.

<br />

Constant Value: 14 (0x0000000e)

### LOCEXT

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCEXT
```

Local file (LOC) header extra field length field offset.

<br />

Constant Value: 28 (0x0000001c)

### LOCFLG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCFLG
```

Local file (LOC) header general purpose bit flag field offset.

<br />

Constant Value: 6 (0x00000006)

### LOCHDR

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCHDR
```

Local file (LOC) header size in bytes (including signature).

<br />

Constant Value: 30 (0x0000001e)

### LOCHOW

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCHOW
```

Local file (LOC) header compression method field offset.

<br />

Constant Value: 8 (0x00000008)

### LOCLEN

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCLEN
```

Local file (LOC) header uncompressed size field offset.

<br />

Constant Value: 22 (0x00000016)

### LOCNAM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCNAM
```

Local file (LOC) header filename length field offset.

<br />

Constant Value: 26 (0x0000001a)

### LOCSIG

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final long LOCSIG
```

Local file (LOC) header signature.

<br />

Constant Value: 67324752 (0x0000000004034b50)

### LOCSIZ

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCSIZ
```

Local file (LOC) header compressed size field offset.

<br />

Constant Value: 18 (0x00000012)

### LOCTIM

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCTIM
```

Local file (LOC) header modification time field offset.

<br />

Constant Value: 10 (0x0000000a)

### LOCVER

Added in [API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int LOCVER
```

Local file (LOC) header version needed to extract field offset.

<br />

Constant Value: 4 (0x00000004)

### OPEN_DELETE

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int OPEN_DELETE
```

Mode flag to open a zip file and mark it for deletion. The file will be deleted some time between the moment that it is opened and the moment that it is closed, but its contents will remain accessible via the `ZipFile` object until either the close method is invoked or the virtual machine exits.

<br />

Constant Value: 4 (0x00000004)

### OPEN_READ

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int OPEN_READ
```

Mode flag to open a zip file for reading.

<br />

Constant Value: 1 (0x00000001)

## Public constructors

### ZipFile

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (File file)
```

Opens a ZIP file for reading given the specified File object.

The UTF-8 `https://developer.android.com/reference/java/nio/charset/Charset` is used to decode the entry names and comments.

<br />

| Parameters ||
|---|---|
| `file` | `File`: the ZIP file to be opened for reading <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

### ZipFile

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (File file, 
                int mode)
```

Opens a new `ZipFile` to read from the specified `File` object in the specified mode. The mode argument must be either `OPEN_READ` or `OPEN_READ | OPEN_DELETE`.

First, if there is a security manager, its `checkRead` method is called with the `name` argument as its argument to ensure the read is allowed.

The UTF-8 `https://developer.android.com/reference/java/nio/charset/Charset` is used to decode the entry names and comments

<br />

| Parameters ||
|---|---|
| `file` | `File`: the ZIP file to be opened for reading <br /> |
| `mode` | `int`: the mode in which the file is to be opened <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `mode` argument is invalid |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkRead` method doesn't allow read access to the file, or its `checkDelete` method doesn't allow deleting the file when the `OPEN_DELETE` flag is set. |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

**See also:**

- `https://developer.android.com/reference/java/lang/SecurityManager#checkRead(java.lang.String)`

### ZipFile

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (File file, 
                int mode, 
                Charset charset)
```

Opens a new `ZipFile` to read from the specified `File` object in the specified mode. The mode argument must be either `OPEN_READ` or `OPEN_READ | OPEN_DELETE`.

First, if there is a security manager, its `checkRead` method is called with the `name` argument as its argument to ensure the read is allowed.

<br />

| Parameters ||
|---|---|
| `file` | `File`: the ZIP file to be opened for reading <br /> |
| `mode` | `int`: the mode in which the file is to be opened <br /> |
| `charset` | `Charset`: the [charset](https://developer.android.com/reference/java/nio/charset/Charset) to be used to decode the ZIP entry name and comment that are not encoded by using UTF-8 encoding (indicated by entry's general purpose flag). <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `mode` argument is invalid |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkRead` method doesn't allow read access to the file,or its `checkDelete` method doesn't allow deleting the file when the `OPEN_DELETE` flag is set |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

**See also:**

- `https://developer.android.com/reference/java/lang/SecurityManager#checkRead(java.lang.String)`

### ZipFile

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (File file, 
                Charset charset)
```

Opens a ZIP file for reading given the specified File object.

<br />

| Parameters ||
|---|---|
| `file` | `File`: the ZIP file to be opened for reading <br /> |
| `charset` | `Charset`: The [charset](https://developer.android.com/reference/java/nio/charset/Charset) to be used to decode the ZIP entry name and comment (ignored if the [language encoding bit](https://developer.android.com/reference/java/util/zip/package-summary#lang_encoding) of the ZIP entry's general purpose bit flag is set). <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

### ZipFile

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (String name)
```

Opens a zip file for reading.

First, if there is a security manager, its `checkRead` method is called with the `name` argument as its argument to ensure the read is allowed.

The UTF-8 `https://developer.android.com/reference/java/nio/charset/Charset` is used to decode the entry names and comments.

If the app targets Android U or above, zip file entry names containing ".." or starting with "/" passed here will throw a `https://developer.android.com/reference/java/util/zip/ZipException`. For more details, see `https://developer.android.com/reference/dalvik/system/ZipPathValidator`.

<br />

| Parameters ||
|---|---|
| `name` | `String`: the name of the zip file <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkRead` method doesn't allow read access to the file. |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if (1) a ZIP format error has occurred or (2) `targetSdkVersion >= BUILD.VERSION_CODES.UPSIDE_DOWN_CAKE` and (the `name` argument contains ".." or starts with "/"). |

**See also:**

- `https://developer.android.com/reference/java/lang/SecurityManager#checkRead(java.lang.String)`

### ZipFile

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipFile (String name, 
                Charset charset)
```

Opens a zip file for reading.

First, if there is a security manager, its `checkRead` method is called with the `name` argument as its argument to ensure the read is allowed.

<br />

| Parameters ||
|---|---|
| `name` | `String`: the name of the zip file <br /> |
| `charset` | `Charset`: the [charset](https://developer.android.com/reference/java/nio/charset/Charset) to be used to decode the ZIP entry name and comment that are not encoded by using UTF-8 encoding (indicated by entry's general purpose flag). <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/lang/SecurityException` | if a security manager exists and its `checkRead` method doesn't allow read access to the file |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

**See also:**

- `https://developer.android.com/reference/java/lang/SecurityManager#checkRead(java.lang.String)`

## Public methods

### close

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void close ()
```

Closes the ZIP file.

Closing this ZIP file will close all of the input streams previously returned by invocations of the `https://developer.android.com/reference/java/util/zip/ZipFile#getInputStream(java.util.zip.ZipEntry)` method.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |

### entries

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Enumeration<? extends ZipEntry> entries ()
```

Returns an enumeration of the ZIP file entries.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Enumeration<? extends https://developer.android.com/reference/java/util/zip/ZipEntry>` | an enumeration of the ZIP file entries <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |

### getComment

Added in [API level 19](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getComment ()
```

Returns the zip file comment, or null if none.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the comment string for the zip file, or null if none <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |

### getEntry

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ZipEntry getEntry (String name)
```

Returns the zip file entry for the specified name, or null if not found.

<br />

| Parameters ||
|---|---|
| `name` | `String`: the name of the entry <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/zip/ZipEntry` | the zip file entry, or null if not found <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |

### getInputStream

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public InputStream getInputStream (ZipEntry entry)
```

Returns an input stream for reading the contents of the specified zip file entry.

Closing this ZIP file will, in turn, close all input streams that have been returned by invocations of this method.

<br />

| Parameters ||
|---|---|
| `entry` | `ZipEntry`: the zip file entry <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/io/InputStream` | the input stream for reading the contents of the specified zip file entry. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error has occurred |
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |
| `https://developer.android.com/reference/java/util/zip/ZipException` | if a ZIP format error has occurred |

### getName

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getName ()
```

Returns the path name of the ZIP file.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the path name of the ZIP file <br /> |

### size

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int size ()
```

Returns the number of entries in the ZIP file.

<br />

| Returns ||
|---|---|
| `int` | the number of entries in the ZIP file <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |

### stream

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Stream<? extends ZipEntry> stream ()
```

Returns an ordered `Stream` over the ZIP file entries. Entries appear in the `Stream` in the order they appear in the central directory of the ZIP file.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/stream/Stream<? extends https://developer.android.com/reference/java/util/zip/ZipEntry>` | an ordered `Stream` of entries in this ZIP file <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException` | if the zip file has been closed |