java.io.Closeable
, java.lang.AutoCloseable
, RandomAccessRead
, SequentialRead
public class RandomAccessBufferedFileInputStream extends java.io.InputStream implements RandomAccessRead
InputStream
access to portions of a file combined with
buffered reading of content. Start of next bytes to read can be set via seek
method.
File is accessed via RandomAccessFile
and is read in byte chunks
which are cached.Constructor | Description |
---|---|
RandomAccessBufferedFileInputStream(java.io.File _file) |
Create input stream instance for given file.
|
Modifier and Type | Method | Description |
---|---|---|
int |
available() |
|
void |
close() |
Release resources that are being held.
|
long |
getFilePointer() |
Deprecated.
use
getPosition() instead |
long |
getPosition() |
Returns offset in file at which next byte would be read.
|
long |
length() |
The total number of bytes that are available.
|
int |
read() |
Read a single byte of data.
|
int |
read(byte[] b,
int off,
int len) |
Read a buffer of data.
|
void |
seek(long newOffset) |
Seeks to new position.
|
long |
skip(long n) |
public RandomAccessBufferedFileInputStream(java.io.File _file) throws java.io.FileNotFoundException, java.io.IOException
java.io.FileNotFoundException
java.io.IOException
public long getFilePointer()
getPosition()
insteadpublic long getPosition()
getPosition
in interface RandomAccessRead
SequentialRead.read()
(if no more bytes are left it returns a value >= length of source)public void seek(long newOffset) throws java.io.IOException
seek
in interface RandomAccessRead
newOffset
- The position to seek to.java.io.IOException
- If there is an error while seeking.public int read() throws java.io.IOException
SequentialRead
read
in interface SequentialRead
read
in class java.io.InputStream
java.io.IOException
- If there is an error while reading the data.public int read(byte[] b, int off, int len) throws java.io.IOException
SequentialRead
read
in interface SequentialRead
read
in class java.io.InputStream
b
- The buffer to write the data to.off
- Offset into the buffer to start writing.len
- The amount of data to attempt to read.java.io.IOException
- If there was an error while reading the data.public int available() throws java.io.IOException
available
in class java.io.InputStream
java.io.IOException
public long skip(long n) throws java.io.IOException
skip
in class java.io.InputStream
java.io.IOException
public long length() throws java.io.IOException
RandomAccessRead
length
in interface RandomAccessRead
java.io.IOException
- If there is an IO error while determining the
length of the data stream.public void close() throws java.io.IOException
SequentialRead
close
in interface java.lang.AutoCloseable
close
in interface java.io.Closeable
close
in interface SequentialRead
close
in class java.io.InputStream
java.io.IOException
- If there is an error closing this resource.