java.util.zip

## Class InflaterOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - java.util.zip.InflaterOutputStream

All Implemented Interfaces:
  Closeable, Flushable

    public class InflaterOutputStream
    extends FilterOutputStream

Implements an output stream filter for uncompressing data stored in the "deflate" compression format.

Since:
  1.6
See Also:
  `InflaterInputStream`, `DeflaterInputStream`, `DeflaterOutputStream`

### Field Summary

Fields
`protected byte[]` `buf` Output buffer for writing uncompressed data.
`protected Inflater` `inf` Decompressor for this stream.

### Fields inherited from class java.io.FilterOutputStream

`out`

### Constructor Summary

Constructors
Constructor and Description
`InflaterOutputStream(OutputStream out)` Creates a new output stream with a default decompressor and buffer size.
`InflaterOutputStream(OutputStream out, Inflater infl)` Creates a new output stream with the specified decompressor and a default buffer size.
`InflaterOutputStream(OutputStream out, Inflater infl, int bufLen)` Creates a new output stream with the specified decompressor and buffer size.

### Method Summary

Methods
`void` `close()` Writes any remaining uncompressed data to the output stream and closes the underlying output stream.
`void` `finish()` Finishes writing uncompressed data to the output stream without closing the underlying stream.
`void` `flush()` Flushes this output stream, forcing any pending buffered output bytes to be written.
`void` `write(byte[] b, int off, int len)` Writes an array of bytes to the uncompressed output stream.
`void` `write(int b)` Writes a byte to the uncompressed output stream.

### Methods inherited from class java.io.FilterOutputStream

`write`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### inf

    protected final Inflater inf

Decompressor for this stream.

#### buf

    protected final byte[] buf

Output buffer for writing uncompressed data.

### Constructor Detail

#### InflaterOutputStream

    public InflaterOutputStream(OutputStream out)

Creates a new output stream with a default decompressor and buffer size.

Parameters:
  `out` - output stream to write the uncompressed data to
Throws:
  `NullPointerException` - if `out` is null

#### InflaterOutputStream

    public InflaterOutputStream(OutputStream out,
                        Inflater infl)

Creates a new output stream with the specified decompressor and a default buffer size.

Parameters:
  `out` - output stream to write the uncompressed data to
  `infl` - decompressor ("inflater") for this stream
Throws:
  `NullPointerException` - if `out` or `infl` is null

#### InflaterOutputStream

    public InflaterOutputStream(OutputStream out,
                        Inflater infl,
                        int bufLen)

Creates a new output stream with the specified decompressor and buffer size.

Parameters:
  `out` - output stream to write the uncompressed data to
  `infl` - decompressor ("inflater") for this stream
  `bufLen` - decompression buffer size
Throws:
  `IllegalArgumentException` - if `bufLen` is <= 0
  `NullPointerException` - if `out` or `infl` is null

### Method Detail

#### close

    public void close()
               throws IOException

Writes any remaining uncompressed data to the output stream and closes the underlying output stream.

Specified by:
  `close` in interface `Closeable`
Overrides:
  `close` in class `FilterOutputStream`
Throws:
  `IOException` - if an I/O error occurs
See Also:
  `FilterOutputStream.flush()`, `FilterOutputStream.out`

#### flush

    public void flush()
               throws IOException

Flushes this output stream, forcing any pending buffered output bytes to be written.

Specified by:
  `flush` in interface `Flushable`
Overrides:
  `flush` in class `FilterOutputStream`
Throws:
  `IOException` - if an I/O error occurs or this stream is already closed
See Also:
  `FilterOutputStream.out`

#### finish

    public void finish()
                throws IOException

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

Throws:
  `IOException` - if an I/O error occurs or this stream is already closed

#### write

    public void write(int b)
               throws IOException

Writes a byte to the uncompressed output stream.

Overrides:
  `write` in class `FilterOutputStream`
Parameters:
  `b` - a single byte of compressed data to decompress and write to the output stream
Throws:
  `IOException` - if an I/O error occurs or this stream is already closed
  `ZipException` - if a compression (ZIP) format error occurs

#### write

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

Writes an array of bytes to the uncompressed output stream.

Overrides:
  `write` in class `FilterOutputStream`
Parameters:
  `b` - buffer containing compressed data to decompress and write to the output stream
  `off` - starting offset of the compressed data within `b`
  `len` - number of bytes to decompress from `b`
Throws:
  `IndexOutOfBoundsException` - if `off` < 0, or if `len` < 0, or if `len` > `b.length - off`
  `IOException` - if an I/O error occurs or this stream is already closed
  `NullPointerException` - if `b` is null
  `ZipException` - if a compression (ZIP) format error occurs
See Also:
  `FilterOutputStream.write(int)`

Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.