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, resetpublic 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 RandomAccessReadRandomAccessRead.read()
(if no more bytes are left it returns a value >= length of source)public void seek(long newOffset)
throws IOException
seek in interface RandomAccessReadnewOffset - the position to seek to.IOException - if something went wrong.public int read()
throws IOException
RandomAccessReadread in interface RandomAccessReadread in class InputStreamIOException - If there is an error while reading the data.public int read(byte[] b)
throws IOException
RandomAccessReadread in interface RandomAccessReadread in class InputStreamb - 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
RandomAccessReadread in interface RandomAccessReadread in class InputStreamb - 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
RandomAccessReadavailable in interface RandomAccessReadavailable in class InputStreamIOException - if this random access has been closedpublic long skip(long n)
throws IOException
skip in class InputStreamIOExceptionpublic long length()
throws IOException
RandomAccessReadlength in interface RandomAccessReadIOException - If there is an IO error while determining the
length of the data stream.public void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class InputStreamIOExceptionpublic boolean isClosed()
RandomAccessReadisClosed in interface RandomAccessReadpublic int peek()
throws IOException
RandomAccessReadpeek in interface RandomAccessReadIOException - If there is an error reading the next byte.public void rewind(int bytes)
throws IOException
RandomAccessReadrewind in interface RandomAccessReadbytes - the number of bytes to be seeked backwardsIOException - If there is an error while seekingpublic byte[] readFully(int length)
throws IOException
RandomAccessReadreadFully in interface RandomAccessReadlength - the number of bytes to be readIOException - if an I/O error occurs while reading datapublic boolean isEOF()
throws IOException
RandomAccessReadisEOF in interface RandomAccessReadIOException - If there is an error reading the next byte.Copyright © 2002–2016 The Apache Software Foundation. All rights reserved.