public class

InflaterInputStream

extends FilterInputStream
java.lang.Object
   ↳ java.io.InputStream
     ↳ java.io.FilterInputStream
       ↳ java.util.zip.InflaterInputStream
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

This class provides an implementation of FilterInputStream that decompresses data that was compressed using the DEFLATE algorithm (see specification). Basically it wraps the Inflater class and takes care of the buffering.

Summary

Fields
protected byte[] buf The input buffer used for decompression.
protected Inflater inf The inflater used for this stream.
protected int len The length of the buffer.
[Expand]
Inherited Fields
From class java.io.FilterInputStream
Public Constructors
InflaterInputStream(InputStream is)
This is the most basic constructor.
InflaterInputStream(InputStream is, Inflater inflater)
This constructor lets you pass a specifically initialized Inflater, for example one that expects no ZLIB header.
InflaterInputStream(InputStream is, Inflater inflater, int bsize)
This constructor lets you specify both the Inflater as well as the internal buffer size to be used.
Public Methods
int available()
Returns 0 when when this stream has exhausted its input; and 1 otherwise.
void close()
Closes the input stream.
void mark(int readlimit)
Marks the current position in the stream.
boolean markSupported()
Returns whether the receiver implements mark semantics.
int read()
Reads a single byte of decompressed data.
int read(byte[] buffer, int offset, int byteCount)
Reads up to byteCount bytes of decompressed data and stores it in buffer starting at offset.
void reset()
Reset the position of the stream to the last marked position.
long skip(long byteCount)
Skips up to byteCount bytes of uncompressed data.
Protected Methods
void fill()
Fills the input buffer with data to be decompressed.
[Expand]
Inherited Methods
From class java.io.FilterInputStream
From class java.io.InputStream
From class java.lang.Object
From interface java.io.Closeable

Fields

protected byte[] buf

Since: API Level 1

The input buffer used for decompression.

protected Inflater inf

Since: API Level 1

The inflater used for this stream.

protected int len

Since: API Level 1

The length of the buffer.

Public Constructors

public InflaterInputStream (InputStream is)

Since: API Level 1

This is the most basic constructor. You only need to pass the InputStream from which the compressed data is to be read from. Default settings for the Inflater and internal buffer are be used. In particular the Inflater expects a ZLIB header from the input stream.

Parameters
is the InputStream to read data from.

public InflaterInputStream (InputStream is, Inflater inflater)

Since: API Level 1

This constructor lets you pass a specifically initialized Inflater, for example one that expects no ZLIB header.

Parameters
is the InputStream to read data from.
inflater the specific Inflater for decompressing data.

public InflaterInputStream (InputStream is, Inflater inflater, int bsize)

Since: API Level 1

This constructor lets you specify both the Inflater as well as the internal buffer size to be used.

Parameters
is the InputStream to read data from.
inflater the specific Inflater for decompressing data.
bsize the size to be used for the internal buffer.

Public Methods

public int available ()

Since: API Level 1

Returns 0 when when this stream has exhausted its input; and 1 otherwise. A result of 1 does not guarantee that further bytes can be returned, with or without blocking.

Although consistent with the RI, this behavior is inconsistent with available(), and violates the Liskov Substitution Principle. This method should not be used.

Returns
  • 0 if no further bytes are available. Otherwise returns 1, which suggests (but does not guarantee) that additional bytes are available.
Throws
IOException if this stream is closed or an error occurs

public void close ()

Since: API Level 1

Closes the input stream.

Throws
IOException If an error occurs closing the input stream.

public void mark (int readlimit)

Since: API Level 1

Marks the current position in the stream. This implementation overrides the super type implementation to do nothing at all.

Parameters
readlimit of no use.

public boolean markSupported ()

Since: API Level 1

Returns whether the receiver implements mark semantics. This type does not support mark(), so always responds false.

Returns
  • false, always

public int read ()

Since: API Level 1

Reads a single byte of decompressed data.

Returns
  • the byte read.
Throws
IOException if an error occurs reading the byte.

public int read (byte[] buffer, int offset, int byteCount)

Since: API Level 1

Reads up to byteCount bytes of decompressed data and stores it in buffer starting at offset.

Parameters
buffer the byte array in which to store the bytes read.
offset the initial position in buffer to store the bytes read from this stream.
byteCount the maximum number of bytes to store in buffer.
Returns
  • Number of uncompressed bytes read
Throws
IOException

public void reset ()

Since: API Level 1

Reset the position of the stream to the last marked position. This implementation overrides the supertype implementation and always throws an IOException when called.

Throws
IOException if the method is called

public long skip (long byteCount)

Since: API Level 1

Skips up to byteCount bytes of uncompressed data.

Parameters
byteCount the number of bytes to skip.
Returns
  • the number of uncompressed bytes skipped.
Throws
IllegalArgumentException if byteCount < 0.
IOException if an error occurs skipping.

Protected Methods

protected void fill ()

Since: API Level 1

Fills the input buffer with data to be decompressed.

Throws
IOException if an IOException occurs.