org.apache.hadoop.io.compress
Class BlockCompressorStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.hadoop.io.compress.CompressionOutputStream
          extended by org.apache.hadoop.io.compress.CompressorStream
              extended by org.apache.hadoop.io.compress.BlockCompressorStream
All Implemented Interfaces:
Closeable, Flushable

public class BlockCompressorStream
extends CompressorStream

A CompressorStream which works with 'block-based' based compression algorithms, as opposed to 'stream-based' compression algorithms. It should be noted that this wrapper does not guarantee that blocks will be sized for the compressor. If the Compressor requires buffering to effect meaningful compression, it is responsible for it.


Field Summary
 
Fields inherited from class org.apache.hadoop.io.compress.CompressorStream
buffer, closed, compressor
 
Fields inherited from class org.apache.hadoop.io.compress.CompressionOutputStream
out
 
Constructor Summary
BlockCompressorStream(OutputStream out, Compressor compressor)
          Create a BlockCompressorStream with given output-stream and compressor.
BlockCompressorStream(OutputStream out, Compressor compressor, int bufferSize, int compressionOverhead)
          Create a BlockCompressorStream.
 
Method Summary
protected  void compress()
           
 void finish()
          Finishes writing compressed data to the output stream without closing the underlying stream.
 void write(byte[] b, int off, int len)
          Write the data provided to the compression codec, compressing no more than the buffer size less the compression overhead as specified during construction for each block.
 
Methods inherited from class org.apache.hadoop.io.compress.CompressorStream
close, resetState, write
 
Methods inherited from class org.apache.hadoop.io.compress.CompressionOutputStream
flush
 
Methods inherited from class java.io.OutputStream
write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockCompressorStream

public BlockCompressorStream(OutputStream out,
                             Compressor compressor,
                             int bufferSize,
                             int compressionOverhead)
Create a BlockCompressorStream.

Parameters:
out - stream
compressor - compressor to be used
bufferSize - size of buffer
compressionOverhead - maximum 'overhead' of the compression algorithm with given bufferSize

BlockCompressorStream

public BlockCompressorStream(OutputStream out,
                             Compressor compressor)
Create a BlockCompressorStream with given output-stream and compressor. Use default of 512 as bufferSize and compressionOverhead of (1% of bufferSize + 12 bytes) = 18 bytes (zlib algorithm).

Parameters:
out - stream
compressor - compressor to be used
Method Detail

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Write the data provided to the compression codec, compressing no more than the buffer size less the compression overhead as specified during construction for each block. Each block contains the uncompressed length for the block, followed by one or more length-prefixed blocks of compressed data.

Overrides:
write in class CompressorStream
Throws:
IOException

finish

public void finish()
            throws IOException
Description copied from class: CompressionOutputStream
Finishes writing compressed data to the output stream without closing the underlying stream.

Overrides:
finish in class CompressorStream
Throws:
IOException

compress

protected void compress()
                 throws IOException
Overrides:
compress in class CompressorStream
Throws:
IOException


Copyright © 2009 The Apache Software Foundation