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 a random access input stream instance for the given file.
|
RandomAccessBufferedFileInputStream(InputStream input)
Create a random access input stream for the given input stream by copying the data to a
temporary file.
|
RandomAccessBufferedFileInputStream(String filename)
Create a random access input stream instance for the file with the given name.
|
Modifier and Type | Method and Description |
---|---|
int |
available()
Returns an estimate of the number of bytes that can be read.
|
void |
close() |
long |
getPosition()
Returns offset in file at which next byte would be read.
|
boolean |
isClosed()
Returns true if this stream has been closed.
|
boolean |
isEOF()
A simple test to see if we are at the end of the data.
|
long |
length()
The total number of bytes that are available.
|
int |
peek()
This will peek at the next byte.
|
int |
read()
Read a single byte of data.
|
int |
read(byte[] b)
Read a buffer of data.
|
int |
read(byte[] b,
int off,
int len)
Read a buffer of data.
|
byte[] |
readFully(int length)
Reads a given number of bytes.
|
void |
rewind(int bytes)
Seek backwards the given number of bytes.
|
void |
seek(long newOffset)
Seeks to new position.
|
long |
skip(long n) |
mark, markSupported, reset
public RandomAccessBufferedFileInputStream(String filename) throws IOException
filename
- the filename of the file to be read.IOException
- if something went wrong while accessing the given file.public RandomAccessBufferedFileInputStream(File file) throws IOException
file
- the file to be read.IOException
- if something went wrong while accessing the given file.public RandomAccessBufferedFileInputStream(InputStream input) throws IOException
input
- the input stream to be read. It will be closed by this method.IOException
- if something went wrong while creating the temporary file.public long getPosition()
getPosition
in interface RandomAccessRead
RandomAccessRead.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 something went wrong.public int read() throws IOException
RandomAccessRead
read
in interface RandomAccessRead
read
in class InputStream
IOException
- If there is an error while reading the data.public int read(byte[] b) throws IOException
RandomAccessRead
read
in interface RandomAccessRead
read
in class InputStream
b
- The buffer to write the data to.IOException
- If there was an error while reading the data.public int read(byte[] b, int off, int len) throws IOException
RandomAccessRead
read
in interface RandomAccessRead
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
RandomAccessRead
available
in interface RandomAccessRead
available
in class InputStream
IOException
- if this random access has been closedpublic 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
close
in interface Closeable
close
in interface AutoCloseable
close
in class InputStream
IOException
public boolean isClosed()
RandomAccessRead
isClosed
in interface RandomAccessRead
public int peek() throws IOException
RandomAccessRead
peek
in interface RandomAccessRead
IOException
- If there is an error reading the next byte.public void rewind(int bytes) throws IOException
RandomAccessRead
rewind
in interface RandomAccessRead
bytes
- the number of bytes to be seeked backwardsIOException
- If there is an error while seekingpublic byte[] readFully(int length) throws IOException
RandomAccessRead
readFully
in interface RandomAccessRead
length
- the number of bytes to be readIOException
- if an I/O error occurs while reading datapublic boolean isEOF() throws IOException
RandomAccessRead
isEOF
in interface RandomAccessRead
IOException
- If there is an error reading the next byte.Copyright © 2002–2017 The Apache Software Foundation. All rights reserved.