lightbulb_outline Please take our October 2018 developer survey. Start survey

DeflaterOutputStream

public class DeflaterOutputStream
extends FilterOutputStream

java.lang.Object
   ↳ java.io.OutputStream
     ↳ java.io.FilterOutputStream
       ↳ java.util.zip.DeflaterOutputStream


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:

Summary

Fields

protected byte[] buf

Output buffer for writing compressed data.

protected Deflater def

Compressor for this stream.

Inherited fields

Public constructors

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 methods

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 methods

void deflate()

Writes next block of compressed data to the output stream.

Inherited methods

Fields

buf

added in API level 1
protected byte[] buf

Output buffer for writing compressed data.

def

added in API level 1
protected Deflater def

Compressor for this stream.

Public constructors

DeflaterOutputStream

added in API level 19
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 OutputStream: the output stream

def Deflater: the compressor ("deflater")

size int: the output buffer size

syncFlush boolean: 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

DeflaterOutputStream

added in API level 1
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 OutputStream: the output stream

def Deflater: the compressor ("deflater")

size int: the output buffer size

Throws
IllegalArgumentException if size <= 0

DeflaterOutputStream

added in API level 19
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 OutputStream: the output stream

def Deflater: the compressor ("deflater")

syncFlush boolean: 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

DeflaterOutputStream

added in API level 1
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 OutputStream: the output stream

def Deflater: the compressor ("deflater")

DeflaterOutputStream

added in API level 19
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 OutputStream: the output stream

syncFlush boolean: 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

DeflaterOutputStream

added in API level 1
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 OutputStream: the output stream

Public methods

close

added in API level 1
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

finish

added in API level 1
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

flush

added in API level 1
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

write

added in API level 1
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 byte: the data to be written

off int: the start offset of the data

len int: the length of the data

Throws
IOException if an I/O error has occurred

write

added in API level 1
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 int: the byte to be written

Throws
IOException if an I/O error has occurred

Protected methods

deflate

added in API level 1
protected void deflate ()

Writes next block of compressed data to the output stream.

Throws
IOException if an I/O error has occurred