Package org.apache.pdfbox.io
Class RandomAccessBufferedFileInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.pdfbox.io.RandomAccessBufferedFileInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,RandomAccessRead
,SequentialRead
public class RandomAccessBufferedFileInputStream extends java.io.InputStream implements RandomAccessRead
ProvidesInputStream
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 viaRandomAccessFile
and is read in byte chunks which are cached.- Author:
- Timo Boehme (timo.boehme at ontochem com)
-
-
Constructor Summary
Constructors Constructor Description RandomAccessBufferedFileInputStream(java.io.File _file)
Create input stream instance for given file.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description int
available()
void
close()
Release resources that are being held.long
getFilePointer()
Deprecated.usegetPosition()
insteadlong
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)
-
-
-
Method Detail
-
getFilePointer
public long getFilePointer()
Deprecated.usegetPosition()
insteadReturns offset in file at which next byte would be read.
-
getPosition
public long getPosition()
Returns offset in file at which next byte would be read.- Specified by:
getPosition
in interfaceRandomAccessRead
- Returns:
- offset of next byte which will be returned with next
SequentialRead.read()
(if no more bytes are left it returns a value >= length of source)
-
seek
public void seek(long newOffset) throws java.io.IOException
Seeks to new position. If new position is outside of current page the new page is either taken from cache or read from file and added to cache.- Specified by:
seek
in interfaceRandomAccessRead
- Parameters:
newOffset
- The position to seek to.- Throws:
java.io.IOException
- If there is an error while seeking.
-
read
public int read() throws java.io.IOException
Description copied from interface:SequentialRead
Read a single byte of data.- Specified by:
read
in interfaceSequentialRead
- Specified by:
read
in classjava.io.InputStream
- Returns:
- The byte of data that is being read.
- Throws:
java.io.IOException
- If there is an error while reading the data.
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
Description copied from interface:SequentialRead
Read a buffer of data.- Specified by:
read
in interfaceSequentialRead
- Overrides:
read
in classjava.io.InputStream
- Parameters:
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.- Returns:
- The number of bytes that were actually read.
- Throws:
java.io.IOException
- If there was an error while reading the data.
-
available
public int available() throws java.io.IOException
- Overrides:
available
in classjava.io.InputStream
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.InputStream
- Throws:
java.io.IOException
-
length
public long length() throws java.io.IOException
Description copied from interface:RandomAccessRead
The total number of bytes that are available.- Specified by:
length
in interfaceRandomAccessRead
- Returns:
- The number of bytes available.
- Throws:
java.io.IOException
- If there is an IO error while determining the length of the data stream.
-
close
public void close() throws java.io.IOException
Description copied from interface:SequentialRead
Release resources that are being held.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceSequentialRead
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
- If there is an error closing this resource.
-
-