public class RandomAccessBufferedFileInputStream extends 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 and Description |
---|
RandomAccessBufferedFileInputStream(File _file)
Create input stream instance for given file.
|
Modifier and Type | Method and 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) |
mark, markSupported, read, reset
public RandomAccessBufferedFileInputStream(File _file) throws FileNotFoundException, IOException
FileNotFoundException
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 IOException
seek
in interface RandomAccessRead
newOffset
- The position to seek to.IOException
- If there is an error while seeking.public int read() throws IOException
SequentialRead
read
in interface SequentialRead
read
in class InputStream
IOException
- If there is an error while reading the data.public int read(byte[] b, int off, int len) throws IOException
SequentialRead
read
in interface SequentialRead
read
in class 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.IOException
- If there was an error while reading the data.public int available() throws IOException
available
in class InputStream
IOException
public long skip(long n) throws IOException
skip
in class InputStream
IOException
public long length() throws IOException
RandomAccessRead
length
in interface RandomAccessRead
IOException
- If there is an IO error while determining the
length of the data stream.public void close() throws IOException
SequentialRead
close
in interface Closeable
close
in interface AutoCloseable
close
in interface SequentialRead
close
in class InputStream
IOException
- If there is an error closing this resource.Copyright © 2002–2017 The Apache Software Foundation. All rights reserved.