Module java.base
Package java.util.zip

Class InflaterOutputStream

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

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
    Modifier and Type
    Field
    Description
    protected byte[]
    Output buffer for writing uncompressed data.
    protected Inflater
    Decompressor for this stream.

    Fields declared in class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new output stream with a default decompressor and buffer size.
    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

    Modifier and Type
    Method
    Description
    void
    Writes any remaining uncompressed data to the output stream and closes the underlying output stream.
    void
    Finishes writing uncompressed data to the output stream without closing the underlying stream.
    void
    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 declared in class java.io.FilterOutputStream

    write

    Methods declared in class java.io.OutputStream

    nullOutputStream

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • inf

      protected final Inflater inf
      Decompressor for this stream.
    • buf

      protected final byte[] buf
      Output buffer for writing uncompressed data.
  • Constructor Details

    • 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 <= 0
      NullPointerException - if out or infl is null
  • Method Details

    • 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 AutoCloseable
      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)