public class BlockCompressedInputStream extends java.io.InputStream implements LocationAware
Modifier and Type | Class and Description |
---|---|
protected static class |
BlockCompressedInputStream.DecompressedBlock |
static class |
BlockCompressedInputStream.FileTermination |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CANNOT_SEEK_CLOSED_STREAM_MSG |
static java.lang.String |
CANNOT_SEEK_STREAM_MSG |
static java.lang.String |
INCORRECT_HEADER_SIZE_MSG |
static java.lang.String |
INVALID_FILE_PTR_MSG |
static java.lang.String |
PREMATURE_END_MSG |
static java.lang.String |
UNEXPECTED_BLOCK_LENGTH_MSG |
Constructor and Description |
---|
BlockCompressedInputStream(java.io.File file)
Use this ctor if you wish to call seek()
|
BlockCompressedInputStream(java.io.File file,
InflaterFactory inflaterFactory)
Use this ctor if you wish to call seek()
|
BlockCompressedInputStream(java.io.InputStream stream)
Note that seek() is not supported if this ctor is used.
|
BlockCompressedInputStream(java.io.InputStream stream,
boolean allowBuffering)
Note that seek() is not supported if this ctor is used.
|
BlockCompressedInputStream(java.io.InputStream stream,
boolean allowBuffering,
InflaterFactory inflaterFactory)
Note that seek() is not supported if this ctor is used.
|
BlockCompressedInputStream(java.io.InputStream stream,
InflaterFactory inflaterFactory)
Note that seek() is not supported if this ctor is used.
|
BlockCompressedInputStream(SeekableStream strm)
For providing some arbitrary data source.
|
BlockCompressedInputStream(SeekableStream strm,
InflaterFactory inflaterFactory)
For providing some arbitrary data source.
|
BlockCompressedInputStream(java.net.URL url) |
BlockCompressedInputStream(java.net.URL url,
InflaterFactory inflaterFactory) |
Modifier and Type | Method and Description |
---|---|
static void |
assertNonDefectiveFile(java.io.File file) |
int |
available() |
static BlockCompressedInputStream.FileTermination |
checkTermination(java.io.File file) |
static BlockCompressedInputStream.FileTermination |
checkTermination(java.nio.file.Path path) |
static BlockCompressedInputStream.FileTermination |
checkTermination(java.nio.channels.SeekableByteChannel channel)
check the status of the final bzgipped block for the given bgzipped resource
|
void |
close()
Closes the underlying InputStream or RandomAccessFile
|
boolean |
endOfBlock() |
static long |
getFileBlock(long bgzfOffset) |
long |
getFilePointer() |
long |
getPosition()
The current offset, in bytes, of this stream/writer/file.
|
static boolean |
isValidFile(java.io.InputStream stream) |
protected BlockCompressedInputStream.DecompressedBlock |
nextBlock(byte[] bufferAvailableForReuse)
Reads and decompresses the next block
|
protected void |
prepareForSeek()
Performs cleanup required before seek is called on the underlying stream
|
protected BlockCompressedInputStream.DecompressedBlock |
processNextBlock(byte[] bufferAvailableForReuse)
Decompress the next block from the input stream.
|
int |
read()
Reads the next byte of data from the input stream.
|
int |
read(byte[] buffer)
Reads some number of bytes from the input stream and stores them into the buffer array b.
|
int |
read(byte[] buffer,
int offset,
int length)
Reads up to len bytes of data from the input stream into an array of bytes.
|
java.lang.String |
readLine()
Reads a whole line.
|
void |
seek(long pos)
Seek to the given position in the file.
|
void |
setCheckCrcs(boolean check)
Determines whether or not the inflater will re-calculated the CRC on the decompressed data
and check it against the value stored in the GZIP header.
|
public static final java.lang.String INCORRECT_HEADER_SIZE_MSG
public static final java.lang.String UNEXPECTED_BLOCK_LENGTH_MSG
public static final java.lang.String PREMATURE_END_MSG
public static final java.lang.String CANNOT_SEEK_STREAM_MSG
public static final java.lang.String CANNOT_SEEK_CLOSED_STREAM_MSG
public static final java.lang.String INVALID_FILE_PTR_MSG
public BlockCompressedInputStream(java.io.InputStream stream)
stream
- source of bytespublic BlockCompressedInputStream(java.io.InputStream stream, InflaterFactory inflaterFactory)
stream
- source of bytesinflaterFactory
- InflaterFactory
used by BlockGunzipper
public BlockCompressedInputStream(java.io.InputStream stream, boolean allowBuffering)
stream
- source of bytesallowBuffering
- if true, allow bufferingpublic BlockCompressedInputStream(java.io.InputStream stream, boolean allowBuffering, InflaterFactory inflaterFactory)
stream
- source of bytesallowBuffering
- if true, allow bufferinginflaterFactory
- InflaterFactory
used by BlockGunzipper
public BlockCompressedInputStream(java.io.File file) throws java.io.IOException
file
- source of bytesjava.io.IOException
public BlockCompressedInputStream(java.io.File file, InflaterFactory inflaterFactory) throws java.io.IOException
file
- source of bytesinflaterFactory
- InflaterFactory
used by BlockGunzipper
java.io.IOException
public BlockCompressedInputStream(java.net.URL url)
url
- source of bytespublic BlockCompressedInputStream(java.net.URL url, InflaterFactory inflaterFactory)
url
- source of bytesinflaterFactory
- InflaterFactory
used by BlockGunzipper
public BlockCompressedInputStream(SeekableStream strm)
strm
- source of bytespublic BlockCompressedInputStream(SeekableStream strm, InflaterFactory inflaterFactory)
strm
- source of bytesinflaterFactory
- InflaterFactory
used by BlockGunzipper
public void setCheckCrcs(boolean check)
public int available() throws java.io.IOException
available
in class java.io.InputStream
java.io.IOException
public boolean endOfBlock()
true
if the stream is at the end of a BGZF block,
false
otherwise.public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.InputStream
java.io.IOException
public int read() throws java.io.IOException
read
in class java.io.InputStream
java.io.IOException
public int read(byte[] buffer) throws java.io.IOException
read
in class java.io.InputStream
buffer
- the buffer into which the data is read.java.io.IOException
public java.lang.String readLine() throws java.io.IOException
java.io.IOException
- If an I/O error occurspublic int read(byte[] buffer, int offset, int length) throws java.io.IOException
read
in class java.io.InputStream
buffer
- buffer into which data is read.offset
- the start offset in array b at which the data is written.length
- the maximum number of bytes to read.java.io.IOException
public void seek(long pos) throws java.io.IOException
pos
- virtual file pointer positionjava.io.IOException
- if stream is closed or not a file based streamprotected void prepareForSeek()
public long getFilePointer()
public long getPosition()
LocationAware
getPosition
in interface LocationAware
public static long getFileBlock(long bgzfOffset)
public static boolean isValidFile(java.io.InputStream stream) throws java.io.IOException
stream
- Must be at start of file. Throws RuntimeException if !stream.markSupported().java.io.IOException
protected BlockCompressedInputStream.DecompressedBlock nextBlock(byte[] bufferAvailableForReuse)
bufferAvailableForReuse
- decompression buffer available for reuseprotected BlockCompressedInputStream.DecompressedBlock processNextBlock(byte[] bufferAvailableForReuse)
bufferAvailableForReuse
- buffer in which to place decompressed block. A null or
incorrectly sized buffer will result in the buffer being ignored and
a new buffer allocated for decompression.public static BlockCompressedInputStream.FileTermination checkTermination(java.io.File file) throws java.io.IOException
file
- the file to checkjava.io.IOException
public static BlockCompressedInputStream.FileTermination checkTermination(java.nio.file.Path path) throws java.io.IOException
path
- to the file to checkjava.io.IOException
public static BlockCompressedInputStream.FileTermination checkTermination(java.nio.channels.SeekableByteChannel channel) throws java.io.IOException
channel
- an open channel to read from,
the channel will remain open and the initial position will be restored when the operation completes
this makes no guarantee about the state of the channel if an exception is thrown during readingjava.io.IOException
public static void assertNonDefectiveFile(java.io.File file) throws java.io.IOException
java.io.IOException