java.util.zip

Class DeflaterOutputStream

public class DeflaterOutputStream extends FilterOutputStream

This is a special FilterOutputStream deflating the bytes that are written through it. It uses the Deflater for deflating. A special thing to be noted is that flush() doesn't flush everything in Sun's JDK, but it does so in jazzlib. This is because Sun's Deflater doesn't have a way to flush() everything, without finishing the stream.

UNKNOWN: Jan 11, 2001

Field Summary
protected byte[]buf
This buffer is used temporarily to retrieve the bytes from the deflater and write them to the underlying output stream.
protected Deflaterdef
The deflater which is used to deflate the stream.
Constructor Summary
DeflaterOutputStream(OutputStream out)
Creates a new DeflaterOutputStream with a default Deflater and default buffer size.
DeflaterOutputStream(OutputStream out, Deflater defl)
Creates a new DeflaterOutputStream with the given Deflater and default buffer size.
DeflaterOutputStream(OutputStream out, Deflater defl, int bufsize)
Creates a new DeflaterOutputStream with the given Deflater and buffer size.
Method Summary
voidclose()
Calls finish() and closes the stream.
protected voiddeflate()
Deflates everything in the def's input buffers.
voidfinish()
Finishes the stream by calling finish() on the deflater.
voidflush()
Flushes the stream by calling flush() on the deflater and then on the underlying stream.
voidwrite(int bval)
Writes a single byte to the compressed output stream.
voidwrite(byte[] buf, int off, int len)
Writes a len bytes from an array to the compressed stream.

Field Detail

buf

protected byte[] buf
This buffer is used temporarily to retrieve the bytes from the deflater and write them to the underlying output stream.

def

protected Deflater def
The deflater which is used to deflate the stream.

Constructor Detail

DeflaterOutputStream

public DeflaterOutputStream(OutputStream out)
Creates a new DeflaterOutputStream with a default Deflater and default buffer size.

Parameters: out the output stream where deflated output should be written.

DeflaterOutputStream

public DeflaterOutputStream(OutputStream out, Deflater defl)
Creates a new DeflaterOutputStream with the given Deflater and default buffer size.

Parameters: out the output stream where deflated output should be written. defl the underlying deflater.

DeflaterOutputStream

public DeflaterOutputStream(OutputStream out, Deflater defl, int bufsize)
Creates a new DeflaterOutputStream with the given Deflater and buffer size.

Parameters: out the output stream where deflated output should be written. defl the underlying deflater. bufsize the buffer size.

Throws: IllegalArgumentException if bufsize isn't positive.

Method Detail

close

public void close()
Calls finish() and closes the stream.

deflate

protected void deflate()
Deflates everything in the def's input buffers. This will call def.deflate() until all bytes from the input buffers are processed.

finish

public void finish()
Finishes the stream by calling finish() on the deflater. This was the only way to ensure that all bytes are flushed in Sun's JDK.

flush

public void flush()
Flushes the stream by calling flush() on the deflater and then on the underlying stream. This ensures that all bytes are flushed. This function doesn't work in Sun's JDK, but only in jazzlib.

write

public void write(int bval)
Writes a single byte to the compressed output stream.

Parameters: bval the byte value.

write

public void write(byte[] buf, int off, int len)
Writes a len bytes from an array to the compressed stream.

Parameters: buf the byte array. off the offset into the byte array where to start. len the number of bytes to write.