org.apache.hadoop.io.compress
Class BlockCompressorStream
java.lang.Object
java.io.OutputStream
org.apache.hadoop.io.compress.CompressionOutputStream
org.apache.hadoop.io.compress.CompressorStream
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.
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BlockCompressorStream
public BlockCompressorStream(OutputStream out,
Compressor compressor,
int bufferSize,
int compressionOverhead)
- Create a
BlockCompressorStream
.
- Parameters:
out
- streamcompressor
- compressor to be usedbufferSize
- size of buffercompressionOverhead
- 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
- streamcompressor
- compressor to be used
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