Package htsjdk.tribble.readers
Class PositionalBufferedStream
java.lang.Object
java.io.InputStream
htsjdk.tribble.readers.PositionalBufferedStream
- All Implemented Interfaces:
LocationAware
,Positional
,Closeable
,AutoCloseable
A wrapper around an
InputStream
which performs it's own buffering, and keeps track of the position.
TODO: This class implements Positional, which in turn extends LocationAware, which requires preservation of
virtual file pointers on BGZF inputs. However, if the inputStream wrapped by this class is a BlockCompressedInputStream,
it violates that contract by wrapping the stream and returning positional file offsets instead.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
close()
final long
The current offset, in bytes, of this stream/writer/file.final boolean
isDone()
Is the stream done? Equivalent to ! hasNext() for an iterator?static void
final int
peek()
Return the next byte in the first, without actually reading it from the stream.final int
read()
final int
read
(byte[] bytes) final int
read
(byte[] bytes, int start, int len) final long
skip
(long nBytes) Skip the next nBytes in the stream.Methods inherited from class java.io.InputStream
available, mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Constructor Details
-
PositionalBufferedStream
-
PositionalBufferedStream
-
-
Method Details
-
getPosition
public final long getPosition()Description copied from interface:LocationAware
The current offset, in bytes, of this stream/writer/file. Or, if this is an iterator/producer, the offset (in bytes) of the END of the most recently returned record (since a produced record corresponds to something that has been read already). See class javadoc for more. Note that for BGZF files, this does not represent an actually file position, but a virtual file pointer.- Specified by:
getPosition
in interfaceLocationAware
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
isDone
Description copied from interface:Positional
Is the stream done? Equivalent to ! hasNext() for an iterator?- Specified by:
isDone
in interfacePositional
- Returns:
- true if the stream has reached EOF, false otherwise
- Throws:
IOException
-
peek
Description copied from interface:Positional
Return the next byte in the first, without actually reading it from the stream. Has the same output as read()- Specified by:
peek
in interfacePositional
- Returns:
- the next byte, or -1 if EOF encountered
- Throws:
IOException
-
skip
Description copied from interface:Positional
Skip the next nBytes in the stream.- Specified by:
skip
in interfacePositional
- Overrides:
skip
in classInputStream
- Parameters:
nBytes
- to skip, must be >= 0- Returns:
- the number of bytes actually skippped.
- Throws:
IOException
-
close
public final void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
-
main
- Throws:
Exception
-