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/ZipOutputStream#constants) \| [Inherited Fields](https://developer.android.com/reference/java/util/zip/ZipOutputStream#inhfields) \| [Ctors](https://developer.android.com/reference/java/util/zip/ZipOutputStream#pubctors) \| [Methods](https://developer.android.com/reference/java/util/zip/ZipOutputStream#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/util/zip/ZipOutputStream#inhmethods)

# ZipOutputStream

` public class ZipOutputStream `   
` ` ` ` ` ` ` extends https://developer.android.com/reference/java/util/zip/DeflaterOutputStream ` ` `

|---|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||||
| ↳ | [java.io.OutputStream](https://developer.android.com/reference/java/io/OutputStream) ||||
|   | ↳ | [java.io.FilterOutputStream](https://developer.android.com/reference/java/io/FilterOutputStream) |||
|   |   | ↳ | [java.util.zip.DeflaterOutputStream](https://developer.android.com/reference/java/util/zip/DeflaterOutputStream) ||
|   |   |   | ↳ | java.util.zip.ZipOutputStream |

Known direct subclasses [JarOutputStream](https://developer.android.com/reference/java/util/jar/JarOutputStream) [JarOutputStream](https://developer.android.com/reference/java/util/jar/JarOutputStream) The `JarOutputStream` class is used to write the contents of a JAR file to any output stream.   

*** ** * ** ***

This class implements an output stream filter for writing files in the ZIP file format. Includes support for both compressed and uncompressed entries.

## Summary

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

### Inherited fields

From class `https://developer.android.com/reference/java/util/zip/DeflaterOutputStream` ` protected byte[]` `https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#buf`

Output buffer for writing compressed data.
` protected https://developer.android.com/reference/java/util/zip/Deflater` `https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#def`

Compressor for this stream.
From class `https://developer.android.com/reference/java/io/FilterOutputStream` ` protected https://developer.android.com/reference/java/io/OutputStream` `https://developer.android.com/reference/java/io/FilterOutputStream#out`

The underlying output stream to be filtered.

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#ZipOutputStream(java.io.OutputStream)(https://developer.android.com/reference/java/io/OutputStream out) ` Creates a new ZIP output stream. |
| ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#ZipOutputStream(java.io.OutputStream,%20java.nio.charset.Charset)(https://developer.android.com/reference/java/io/OutputStream out, https://developer.android.com/reference/java/nio/charset/Charset charset) ` Creates a new ZIP output stream. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#close()() ` Closes the ZIP output stream as well as the stream being filtered. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#closeEntry()() ` Closes the current ZIP entry and positions the stream for writing the next entry. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#finish()() ` Finishes writing the contents of the ZIP output stream without closing the underlying stream. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#putNextEntry(java.util.zip.ZipEntry)(https://developer.android.com/reference/java/util/zip/ZipEntry e) ` Begins writing a new ZIP file entry and positions the stream to the start of the entry data. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#setComment(java.lang.String)(https://developer.android.com/reference/java/lang/String comment) ` Sets the ZIP file comment. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#setLevel(int)(int level) ` Sets the compression level for subsequent entries which are DEFLATED. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#setMethod(int)(int method) ` Sets the default compression method for subsequent entries. |
| ` void` | ` https://developer.android.com/reference/java/util/zip/ZipOutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) ` Writes an array of bytes to the current ZIP entry data. |

### Inherited methods

From class ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream ` ` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#close()() `

Writes remaining compressed data to the output stream and closes the underlying stream.
` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#deflate()() `

Writes next block of compressed data to the output stream.
` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#finish()() `

Finishes writing compressed data to the output stream without closing the underlying stream.
` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#flush()() `

Flushes the compressed output stream.
` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) `

Writes an array of bytes to the compressed output stream.
` void` ` https://developer.android.com/reference/java/util/zip/DeflaterOutputStream#write(int)(int b) `

Writes a byte to the compressed output stream.
From class ` https://developer.android.com/reference/java/io/FilterOutputStream ` ` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#close()() `

Closes this output stream and releases any system resources associated with the stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#flush()() `

Flushes this output stream and forces any buffered output bytes to be written out to the stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(byte[])(byte[] b) `

Writes `b.length` bytes to this output stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) `

Writes `len` bytes from the specified `byte` array starting at offset `off` to this output stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(int)(int b) `

Writes the specified `byte` to this output stream.
From class ` https://developer.android.com/reference/java/io/OutputStream ` ` void` ` https://developer.android.com/reference/java/io/OutputStream#close()() `

Closes this output stream and releases any system resources associated with this stream.
` void` ` https://developer.android.com/reference/java/io/OutputStream#flush()() `

Flushes this output stream and forces any buffered output bytes to be written out.
` static https://developer.android.com/reference/java/io/OutputStream` ` https://developer.android.com/reference/java/io/OutputStream#nullOutputStream()() `

Returns a new `OutputStream` which discards all bytes.
` void` ` https://developer.android.com/reference/java/io/OutputStream#write(byte[])(byte[] b) `

Writes `b.length` bytes from the specified byte array to this output stream.
` void` ` https://developer.android.com/reference/java/io/OutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) `

Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.
` abstract void` ` https://developer.android.com/reference/java/io/OutputStream#write(int)(int b) `

Writes the specified byte to this output stream.
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/io/Flushable ` ` abstract void` ` https://developer.android.com/reference/java/io/Flushable#flush()() `

Flushes this stream by writing any buffered output to the underlying stream.
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)

### DEFLATED

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

```
public static final int DEFLATED
```

Compression method for compressed (DEFLATED) entries.

<br />

Constant Value: 8 (0x00000008)

### 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)

### STORED

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

```
public static final int STORED
```

Compression method for uncompressed (STORED) entries.

<br />

Constant Value: 0 (0x00000000)

## Public constructors

### ZipOutputStream

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

```
public ZipOutputStream (OutputStream out)
```

Creates a new ZIP output stream.

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

<br />

| Parameters ||
|---|---|
| `out` | `OutputStream`: the actual output stream <br /> |

### ZipOutputStream

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

```
public ZipOutputStream (OutputStream out, 
                Charset charset)
```

Creates a new ZIP output stream.

<br />

| Parameters ||
|---|---|
| `out` | `OutputStream`: the actual output stream <br /> |
| `charset` | `Charset`: the [charset](https://developer.android.com/reference/java/nio/charset/Charset) to be used to encode the entry names and comments <br /> |

## 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 output stream as well as the stream being filtered.

<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 file error has occurred |

### closeEntry

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

```
public void closeEntry ()
```

Closes the current ZIP entry and positions the stream for writing the next entry.

<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 |

### finish

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

```
public void finish ()
```

Finishes writing the contents of the ZIP output stream without closing the underlying stream. Use this method when applying multiple filters in succession to the same output stream.

<br />

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

### putNextEntry

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

```
public void putNextEntry (ZipEntry e)
```

Begins writing a new ZIP file entry and positions the stream to the start of the entry data. Closes the current entry if still active.

The default compression method will be used if no compression method was specified for the entry. When writing a compressed (DEFLATED) entry, and the compressed size has not been explicitly set with the `https://developer.android.com/reference/java/util/zip/ZipEntry#setCompressedSize(long)` method, then the compressed size will be set to the actual compressed size after deflation.

The current time will be used if the entry has no set modification time.

<br />

| Parameters ||
|---|---|
| `e` | `ZipEntry`: the ZIP entry to be written <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 |

### setComment

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

```
public void setComment (String comment)
```

Sets the ZIP file comment.

<br />

| Parameters ||
|---|---|
| `comment` | `String`: the comment string <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the length of the specified ZIP file comment is greater than 0xFFFF bytes |

### setLevel

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

```
public void setLevel (int level)
```

Sets the compression level for subsequent entries which are DEFLATED. The default setting is DEFAULT_COMPRESSION.

<br />

| Parameters ||
|---|---|
| `level` | `int`: the compression level (0-9) <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the compression level is invalid |

### setMethod

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

```
public void setMethod (int method)
```

Sets the default compression method for subsequent entries. This default will be used whenever the compression method is not specified for an individual ZIP file entry, and is initially set to DEFLATED.

<br />

| Parameters ||
|---|---|
| `method` | `int`: the default compression method <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the specified compression method is invalid |

### write

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

```
public void write (byte[] b, 
                int off, 
                int len)
```

Writes an array of bytes to the current ZIP entry data. This method will block until all the bytes are written.

<br />

| Parameters ||
|---|---|
| `b` | `byte`: the data to be written <br /> |
| `off` | `int`: the start offset in the data <br /> |
| `len` | `int`: the number of bytes that are written <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 file error has occurred |