Package net.sf.jazzlib
Class DeflaterOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- net.sf.jazzlib.DeflaterOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
- Direct Known Subclasses:
GZIPOutputStream,ZipOutputStream
public class DeflaterOutputStream extends java.io.FilterOutputStreamThis 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.
-
-
Constructor Summary
Constructors Constructor Description DeflaterOutputStream(java.io.OutputStream out)Creates a new DeflaterOutputStream with a default Deflater and default buffer size.DeflaterOutputStream(java.io.OutputStream out, Deflater defl)Creates a new DeflaterOutputStream with the given Deflater and default buffer size.DeflaterOutputStream(java.io.OutputStream out, Deflater defl, int bufsize)Creates a new DeflaterOutputStream with the given Deflater and buffer size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(byte[] buf, int off, int len)Writes a len bytes from an array to the compressed stream.voidwrite(int bval)Writes a single byte to the compressed output 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(java.io.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(java.io.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(java.io.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:
java.lang.IllegalArgumentException- if bufsize isn't positive.
-
-
Method Detail
-
deflate
protected void deflate() throws java.io.IOExceptionDeflates everything in the def's input buffers. This will calldef.deflate()until all bytes from the input buffers are processed.- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOExceptionFlushes 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.- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
finish
public void finish() throws java.io.IOExceptionFinishes the stream by calling finish() on the deflater. This was the only way to ensure that all bytes are flushed in Sun's JDK.- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOExceptionCalls finish () and closes the stream.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
write
public void write(int bval) throws java.io.IOExceptionWrites a single byte to the compressed output stream.- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
bval- the byte value.- Throws:
java.io.IOException
-
write
public void write(byte[] buf, int off, int len) throws java.io.IOExceptionWrites a len bytes from an array to the compressed stream.- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
buf- the byte array.off- the offset into the byte array where to start.len- the number of bytes to write.- Throws:
java.io.IOException
-
-