Package htsjdk.samtools.seekablestream
Class SeekableBufferedStream
- java.lang.Object
-
- java.io.InputStream
-
- htsjdk.samtools.seekablestream.SeekableStream
-
- htsjdk.samtools.seekablestream.SeekableBufferedStream
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class SeekableBufferedStream extends SeekableStream
A wrapper class to provide buffered read access to a SeekableStream. Just wrapping such a stream with a BufferedInputStream will not work as it does not support seeking. In this implementation a seek call is delegated to the wrapped stream, and the buffer reset.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BUFFER_SIZE
-
Fields inherited from class htsjdk.samtools.seekablestream.SeekableStream
mark
-
-
Constructor Summary
Constructors Constructor Description SeekableBufferedStream(SeekableStream stream)
SeekableBufferedStream(SeekableStream stream, int bufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
boolean
eof()
String
getSource()
long
length()
long
position()
int
read()
int
read(byte[] buffer, int offset, int length)
void
seek(long position)
Seeks the stream to the provided position.long
skip(long skipLength)
-
Methods inherited from class htsjdk.samtools.seekablestream.SeekableStream
available, mark, markSupported, readFully, reset
-
Methods inherited from class java.io.InputStream
nullInputStream, read, readAllBytes, readNBytes, readNBytes, transferTo
-
-
-
-
Field Detail
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SeekableBufferedStream
public SeekableBufferedStream(SeekableStream stream, int bufferSize)
-
SeekableBufferedStream
public SeekableBufferedStream(SeekableStream stream)
-
-
Method Detail
-
length
public long length()
- Specified by:
length
in classSeekableStream
- Returns:
- the length of the stream; 0 if not available or empty.
-
skip
public long skip(long skipLength) throws IOException
- Overrides:
skip
in classInputStream
- Throws:
IOException
-
seek
public void seek(long position) throws IOException
Description copied from class:SeekableStream
Seeks the stream to the provided position.- Specified by:
seek
in classSeekableStream
- Throws:
IOException
-
read
public int read() throws IOException
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
public int read(byte[] buffer, int offset, int length) throws IOException
- Specified by:
read
in classSeekableStream
- Throws:
IOException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classSeekableStream
- Throws:
IOException
-
eof
public boolean eof() throws IOException
- Specified by:
eof
in classSeekableStream
- Returns:
true
if the stream is already consumed;false
otherwise.- Throws:
IOException
-
getSource
public String getSource()
- Specified by:
getSource
in classSeekableStream
- Returns:
- String representation of source (e.g. URL, file path, etc.), or null if not available.
-
position
public long position() throws IOException
- Specified by:
position
in classSeekableStream
- Returns:
- the current byte position of the stream.
- Throws:
IOException
-
-