Package org.xerial.snappy
Class SnappyInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.xerial.snappy.SnappyInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class SnappyInputStream extends java.io.InputStreamA stream filter for reading data compressed bySnappyOutputStream.
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]compressedprivate booleanfinishedReadingprivate byte[]headerprotected java.io.InputStreaminstatic intMAX_CHUNK_SIZEprivate intmaxChunkSizeprivate byte[]uncompressedprivate intuncompressedCursorprivate intuncompressedLimit
-
Constructor Summary
Constructors Constructor Description SnappyInputStream(java.io.InputStream input)Create a filter for reading compressed data as a uncompressed streamSnappyInputStream(java.io.InputStream input, int maxChunkSize)Create a filter for reading compressed data as a uncompressed stream with provided maximum chunk size
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()voidclose()Close the streamprotected booleanhasNextChunk()private static booleanisValidHeader(byte[] header)intrawRead(java.lang.Object array, int byteOffset, int byteLength)Read uncompressed data into the specified arrayintread()Reads the next byte of uncompressed data from the input stream.intread(byte[] b, int byteOffset, int byteLength)Reads up to len bytes of data from the input stream into an array of bytes.intread(double[] d)Read double array from the streamintread(double[] d, int off, int len)Read double array from the streamintread(float[] d)Read float array from the streamintread(float[] d, int off, int len)Read float array from the streamintread(int[] d)Read int array from the streamintread(int[] d, int off, int len)Read int array from the streamintread(long[] d)Read long array from the streamintread(long[] d, int off, int len)Read long array from the streamintread(short[] d)Read short array from the streamintread(short[] d, int off, int len)Read short array from the streamprotected voidreadFully(byte[] fragment, int fragmentLength)protected voidreadHeader()private intreadNext(byte[] dest, int offset, int len)Read next len bytes
-
-
-
Field Detail
-
MAX_CHUNK_SIZE
public static final int MAX_CHUNK_SIZE
- See Also:
- Constant Field Values
-
finishedReading
private boolean finishedReading
-
in
protected final java.io.InputStream in
-
maxChunkSize
private final int maxChunkSize
-
compressed
private byte[] compressed
-
uncompressed
private byte[] uncompressed
-
uncompressedCursor
private int uncompressedCursor
-
uncompressedLimit
private int uncompressedLimit
-
header
private byte[] header
-
-
Constructor Detail
-
SnappyInputStream
public SnappyInputStream(java.io.InputStream input) throws java.io.IOExceptionCreate a filter for reading compressed data as a uncompressed stream- Parameters:
input-- Throws:
java.io.IOException
-
SnappyInputStream
public SnappyInputStream(java.io.InputStream input, int maxChunkSize) throws java.io.IOExceptionCreate a filter for reading compressed data as a uncompressed stream with provided maximum chunk size- Parameters:
input-maxChunkSize-- Throws:
java.io.IOException
-
-
Method Detail
-
close
public void close() throws java.io.IOExceptionClose the stream- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
readHeader
protected void readHeader() throws java.io.IOException- Throws:
java.io.IOException
-
isValidHeader
private static boolean isValidHeader(byte[] header) throws java.io.IOException- Throws:
java.io.IOException
-
readFully
protected void readFully(byte[] fragment, int fragmentLength) throws java.io.IOException- Throws:
java.io.IOException
-
read
public int read(byte[] b, int byteOffset, int byteLength) throws java.io.IOExceptionReads up to len bytes of data from the input stream into an array of bytes.- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
rawRead
public int rawRead(java.lang.Object array, int byteOffset, int byteLength) throws java.io.IOExceptionRead uncompressed data into the specified array- Parameters:
array-byteOffset-byteLength-- Returns:
- written bytes
- Throws:
java.io.IOException
-
read
public int read(long[] d, int off, int len) throws java.io.IOExceptionRead long array from the stream- Parameters:
d- inputoff- offsetlen- the number of long elements to read- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(long[] d) throws java.io.IOExceptionRead long array from the stream- Parameters:
d-- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(double[] d, int off, int len) throws java.io.IOExceptionRead double array from the stream- Parameters:
d- inputoff- offsetlen- the number of double elements to read- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(double[] d) throws java.io.IOExceptionRead double array from the stream- Parameters:
d-- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(int[] d) throws java.io.IOExceptionRead int array from the stream- Parameters:
d-- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(int[] d, int off, int len) throws java.io.IOExceptionRead int array from the stream- Parameters:
d- inputoff- offsetlen- the number of int elements to read- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(float[] d, int off, int len) throws java.io.IOExceptionRead float array from the stream- Parameters:
d- inputoff- offsetlen- the number of float elements to read- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(float[] d) throws java.io.IOExceptionRead float array from the stream- Parameters:
d-- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(short[] d, int off, int len) throws java.io.IOExceptionRead short array from the stream- Parameters:
d- inputoff- offsetlen- the number of short elements to read- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
read
public int read(short[] d) throws java.io.IOExceptionRead short array from the stream- Parameters:
d-- Returns:
- the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
- Throws:
java.io.IOException
-
readNext
private int readNext(byte[] dest, int offset, int len) throws java.io.IOExceptionRead next len bytes- Parameters:
dest-offset-len-- Returns:
- read bytes
- Throws:
java.io.IOException
-
hasNextChunk
protected boolean hasNextChunk() throws java.io.IOException- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOExceptionReads the next byte of uncompressed data from the input stream. The value byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
-