Class SnappyCompressorInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.commons.compress.compressors.CompressorInputStream
-
- org.apache.commons.compress.compressors.lz77support.AbstractLZ77CompressorInputStream
-
- org.apache.commons.compress.compressors.snappy.SnappyCompressorInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,InputStreamStatistics
public class SnappyCompressorInputStream extends AbstractLZ77CompressorInputStream
CompressorInputStream for the raw Snappy format.This implementation uses an internal buffer in order to handle the back-references that are at the heart of the LZ77 algorithm. The size of the buffer must be at least as big as the biggest offset used in the compressed stream. The current version of the Snappy algorithm as defined by Google works on 32k blocks and doesn't contain offsets bigger than 32k which is the default block size used by this class.
- Since:
- 1.7
- See Also:
- Snappy compressed format description
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BLOCK_SIZE
Default block size
-
Constructor Summary
Constructors Constructor Description SnappyCompressorInputStream(java.io.InputStream is)
Constructor using the default buffer size of 32k.SnappyCompressorInputStream(java.io.InputStream is, int blockSize)
Constructor using a configurable buffer size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getSize()
Get the uncompressed size of the streamint
read(byte[] b, int off, int len)
-
Methods inherited from class org.apache.commons.compress.compressors.lz77support.AbstractLZ77CompressorInputStream
available, close, getCompressedCount, prefill, read
-
Methods inherited from class org.apache.commons.compress.compressors.CompressorInputStream
getBytesRead, getCount, getUncompressedCount
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.commons.compress.utils.InputStreamStatistics
getUncompressedCount
-
-
-
-
Field Detail
-
DEFAULT_BLOCK_SIZE
public static final int DEFAULT_BLOCK_SIZE
Default block size- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SnappyCompressorInputStream
public SnappyCompressorInputStream(java.io.InputStream is) throws java.io.IOException
Constructor using the default buffer size of 32k.- Parameters:
is
- An InputStream to read compressed data from- Throws:
java.io.IOException
- if reading fails
-
SnappyCompressorInputStream
public SnappyCompressorInputStream(java.io.InputStream is, int blockSize) throws java.io.IOException
Constructor using a configurable buffer size.- Parameters:
is
- An InputStream to read compressed data fromblockSize
- The block size used in compression- Throws:
java.io.IOException
- if reading failsjava.lang.IllegalArgumentException
- if blockSize is not bigger than 0
-
-
Method Detail
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
getSize
public int getSize()
Get the uncompressed size of the stream- Overrides:
getSize
in classAbstractLZ77CompressorInputStream
- Returns:
- the uncompressed size
-
-