Class FramedSnappyCompressorInputStream
java.lang.Object
java.io.InputStream
org.apache.commons.compress.compressors.CompressorInputStream
org.apache.commons.compress.compressors.snappy.FramedSnappyCompressorInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable,InputStreamStatistics
public class FramedSnappyCompressorInputStream
extends CompressorInputStream
implements InputStreamStatistics
CompressorInputStream for the framing Snappy format.
Based on the "spec" in the version "Last revised: 2013-10-25"
- Since:
- 1.7
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate final PureJavaCrc32C(package private) static final intprivate final CountingInputStreamprivate SnappyCompressorInputStreamprivate final FramedSnappyDialectThe dialect to expectprivate booleanprivate longprivate final PushbackInputStreamThe underlying stream to read compressed data fromprivate boolean(package private) static final longpackage private for tests only.private static final intprivate static final intprivate static final intprivate final byte[]private static final intprivate static final intprivate final ByteUtils.ByteSupplier(package private) static final byte[]private static final intprivate intprivate long -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream using theFramedSnappyDialect.STANDARDdialect.FramedSnappyCompressorInputStream(InputStream in, int blockSize, FramedSnappyDialect dialect) Constructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream.Constructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream. -
Method Summary
Modifier and TypeMethodDescriptionintvoidclose()longstatic booleanmatches(byte[] signature, int length) Checks if the signature matches what is expected for a .sz file.intread()intread(byte[] b, int off, int len) private longreadCrc()private voidprivate intreadOnce(byte[] b, int off, int len) Read from the current chunk into the given array.private intprivate intreadSize()private voidprivate void(package private) static longunmask(long x) private voidMethods inherited from class org.apache.commons.compress.compressors.CompressorInputStream
count, count, getBytesRead, getCount, getUncompressedCount, pushedBackBytesMethods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferToMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.commons.compress.utils.InputStreamStatistics
getUncompressedCount
-
Field Details
-
MASK_OFFSET
static final long MASK_OFFSETpackage private for tests only.- See Also:
-
STREAM_IDENTIFIER_TYPE
private static final int STREAM_IDENTIFIER_TYPE- See Also:
-
COMPRESSED_CHUNK_TYPE
static final int COMPRESSED_CHUNK_TYPE- See Also:
-
UNCOMPRESSED_CHUNK_TYPE
private static final int UNCOMPRESSED_CHUNK_TYPE- See Also:
-
PADDING_CHUNK_TYPE
private static final int PADDING_CHUNK_TYPE- See Also:
-
MIN_UNSKIPPABLE_TYPE
private static final int MIN_UNSKIPPABLE_TYPE- See Also:
-
MAX_UNSKIPPABLE_TYPE
private static final int MAX_UNSKIPPABLE_TYPE- See Also:
-
MAX_SKIPPABLE_TYPE
private static final int MAX_SKIPPABLE_TYPE- See Also:
-
SZ_SIGNATURE
static final byte[] SZ_SIGNATURE -
unreadBytes
private long unreadBytes -
countingStream
-
inputStream
The underlying stream to read compressed data from -
dialect
The dialect to expect -
currentCompressedChunk
-
oneByte
private final byte[] oneByte -
endReached
private boolean endReached -
inUncompressedChunk
private boolean inUncompressedChunk -
uncompressedBytesRemaining
private int uncompressedBytesRemaining -
expectedChecksum
private long expectedChecksum -
blockSize
private final int blockSize -
checksum
-
supplier
-
-
Constructor Details
-
FramedSnappyCompressorInputStream
Constructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream using theFramedSnappyDialect.STANDARDdialect.- Parameters:
in- the InputStream from which to read the compressed data- Throws:
IOException- if reading fails
-
FramedSnappyCompressorInputStream
public FramedSnappyCompressorInputStream(InputStream in, FramedSnappyDialect dialect) throws IOException Constructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream.- Parameters:
in- the InputStream from which to read the compressed datadialect- the dialect used by the compressed stream- Throws:
IOException- if reading fails
-
FramedSnappyCompressorInputStream
public FramedSnappyCompressorInputStream(InputStream in, int blockSize, FramedSnappyDialect dialect) throws IOException Constructs a new input stream that decompresses snappy-framed-compressed data from the specified input stream.- Parameters:
in- the InputStream from which to read the compressed datablockSize- the block size to use for the compressed streamdialect- the dialect used by the compressed stream- Throws:
IOException- if reading failsIllegalArgumentException- if blockSize is not bigger than 0- Since:
- 1.14
-
-
Method Details
-
read
- Specified by:
readin classInputStream- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-
read
- Overrides:
readin classInputStream- Throws:
IOException
-
available
- Overrides:
availablein classInputStream- Throws:
IOException
-
getCompressedCount
public long getCompressedCount()- Specified by:
getCompressedCountin interfaceInputStreamStatistics- Returns:
- the amount of raw or compressed bytes read by the stream
- Since:
- 1.17
-
readOnce
Read from the current chunk into the given array.- Returns:
- -1 if there is no current chunk or the number of bytes read from the current chunk (which may be -1 if the end of the chunk is reached).
- Throws:
IOException
-
readNextBlock
- Throws:
IOException
-
readCrc
- Throws:
IOException
-
unmask
static long unmask(long x) -
readSize
- Throws:
IOException
-
skipBlock
- Throws:
IOException
-
readStreamIdentifier
- Throws:
IOException
-
readOneByte
- Throws:
IOException
-
verifyLastChecksumAndReset
- Throws:
IOException
-
matches
public static boolean matches(byte[] signature, int length) Checks if the signature matches what is expected for a .sz file..sz files start with a chunk with tag 0xff and content sNaPpY.
- Parameters:
signature- the bytes to checklength- the number of bytes to check- Returns:
- true if this is a .sz stream, false otherwise
-