DeflaterOutputStream

public class DeflaterOutputStream extends FilterOutputStream
Known Direct Subclasses
Known Indirect Subclasses

This class implements an output stream filter for compressing data in the "deflate" compression format. It is also used as the basis for other types of compression filters, such as GZIPOutputStream.

See Also

Field Summary

protected byte[] buf Output buffer for writing compressed data.
protected Deflater def Compressor for this stream.

Inherited Field Summary

Public Constructor Summary

DeflaterOutputStream(OutputStream out, Deflater def, int size, boolean syncFlush)
Creates a new output stream with the specified compressor, buffer size and flush mode.
DeflaterOutputStream(OutputStream out, Deflater def, int size)
Creates a new output stream with the specified compressor and buffer size.
DeflaterOutputStream(OutputStream out, Deflater def, boolean syncFlush)
Creates a new output stream with the specified compressor, flush mode and a default buffer size.
DeflaterOutputStream(OutputStream out, Deflater def)
Creates a new output stream with the specified compressor and a default buffer size.
DeflaterOutputStream(OutputStream out, boolean syncFlush)
Creates a new output stream with a default compressor, a default buffer size and the specified flush mode.
DeflaterOutputStream(OutputStream out)
Creates a new output stream with a default compressor and buffer size.

Public Method Summary

void
close()
Writes remaining compressed data to the output stream and closes the underlying stream.
void
finish()
Finishes writing compressed data to the output stream without closing the underlying stream.
void
flush()
Flushes the compressed output stream.
void
write(byte[] b, int off, int len)
Writes an array of bytes to the compressed output stream.
void
write(int b)
Writes a byte to the compressed output stream.

Protected Method Summary

void
deflate()
Writes next block of compressed data to the output stream.

Inherited Method Summary

Fields

protected byte[] buf

Output buffer for writing compressed data.

protected Deflater def

Compressor for this stream.

Public Constructors

public DeflaterOutputStream (OutputStream out, Deflater def, int size, boolean syncFlush)

Creates a new output stream with the specified compressor, buffer size and flush mode.

Parameters
out the output stream
def the compressor ("deflater")
size the output buffer size
syncFlush if true the flush() method of this instance flushes the compressor with flush mode Deflater.SYNC_FLUSH before flushing the output stream, otherwise only flushes the output stream
Throws
IllegalArgumentException if size <= 0

public DeflaterOutputStream (OutputStream out, Deflater def, int size)

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

The new output stream instance is created as if by invoking the 4-argument constructor DeflaterOutputStream(out, def, size, false).

Parameters
out the output stream
def the compressor ("deflater")
size the output buffer size
Throws
IllegalArgumentException if size <= 0

public DeflaterOutputStream (OutputStream out, Deflater def, boolean syncFlush)

Creates a new output stream with the specified compressor, flush mode and a default buffer size.

Parameters
out the output stream
def the compressor ("deflater")
syncFlush if true the flush() method of this instance flushes the compressor with flush mode Deflater.SYNC_FLUSH before flushing the output stream, otherwise only flushes the output stream

public DeflaterOutputStream (OutputStream out, Deflater def)

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

The new output stream instance is created as if by invoking the 3-argument constructor DeflaterOutputStream(out, def, false).

Parameters
out the output stream
def the compressor ("deflater")

public DeflaterOutputStream (OutputStream out, boolean syncFlush)

Creates a new output stream with a default compressor, a default buffer size and the specified flush mode.

Parameters
out the output stream
syncFlush if true the flush() method of this instance flushes the compressor with flush mode Deflater.SYNC_FLUSH before flushing the output stream, otherwise only flushes the output stream

public DeflaterOutputStream (OutputStream out)

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

The new output stream instance is created as if by invoking the 2-argument constructor DeflaterOutputStream(out, false).

Parameters
out the output stream

Public Methods

public void close ()

Writes remaining compressed data to the output stream and closes the underlying stream.

Throws
IOException if an I/O error has occurred

public void finish ()

Finishes writing compressed 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 has occurred

public void flush ()

Flushes the compressed output stream. If syncFlush is true when this compressed output stream is constructed, this method first flushes the underlying compressor with the flush mode Deflater.SYNC_FLUSH to force all pending data to be flushed out to the output stream and then flushes the output stream. Otherwise this method only flushes the output stream without flushing the compressor.

Throws
IOException if an I/O error has occurred

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

Writes an array of bytes to the compressed output stream. This method will block until all the bytes are written.

Parameters
b the data to be written
off the start offset of the data
len the length of the data
Throws
IOException if an I/O error has occurred

public void write (int b)

Writes a byte to the compressed output stream. This method will block until the byte can be written.

Parameters
b the byte to be written
Throws
IOException if an I/O error has occurred

Protected Methods

protected void deflate ()

Writes next block of compressed data to the output stream.

Throws
IOException if an I/O error has occurred