jfreerails.util
Class CompressedOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by jfreerails.util.CompressedOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class CompressedOutputStream
extends java.io.FilterOutputStream

A FilterOutputStream for sending compressed data over a network connection. Note that standard ZipOutputStream and java.util.zip.GZipOutputStream don't guarantee that flush sends out all the data written so far, which leads to deadlocks in request-response-based protocols.

Author:
Patrice Espie Licensing: LGPL

Field Summary
private  byte[] buffer
           
private  byte[] compBuffer
           
private  java.util.zip.Deflater deflater
           
private  int writeIndex
           
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
CompressedOutputStream(java.io.OutputStream out)
           
 
Method Summary
 void flush()
           
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class java.io.FilterOutputStream
close
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

buffer

private byte[] buffer

compBuffer

private byte[] compBuffer

writeIndex

private int writeIndex

deflater

private java.util.zip.Deflater deflater
Constructor Detail

CompressedOutputStream

public CompressedOutputStream(java.io.OutputStream out)
Method Detail

write

public void write(byte[] b)
           throws java.io.IOException
Overrides:
write in class java.io.FilterOutputStream
Throws:
java.io.IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Overrides:
write in class java.io.FilterOutputStream
Throws:
java.io.IOException

write

public void write(int b)
           throws java.io.IOException
Overrides:
write in class java.io.FilterOutputStream
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Specified by:
flush in interface java.io.Flushable
Overrides:
flush in class java.io.FilterOutputStream
Throws:
java.io.IOException