Package org.apache.pdfbox.io
Class RandomAccessFile
- java.lang.Object
-
- org.apache.pdfbox.io.RandomAccessFile
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,RandomAccess
,RandomAccessRead
,SequentialRead
public class RandomAccessFile extends java.lang.Object implements RandomAccess, java.io.Closeable
An interface to allow temp PDF data to be stored in a scratch file on the disk to reduce memory consumption.- Version:
- $Revision: 1.2 $
- Author:
- Ben Litchfield
-
-
Constructor Summary
Constructors Constructor Description RandomAccessFile(java.io.File file, java.lang.String mode)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Release resources that are being held.long
getPosition()
Returns offset of next byte to be returned by a read method.long
length()
The total number of bytes that are available.int
read()
Read a single byte of data.int
read(byte[] b, int offset, int length)
Read a buffer of data.void
seek(long position)
Seek to a position in the data.void
write(byte[] b, int offset, int length)
Write a buffer of data to the stream.void
write(int b)
Write a byte to the stream.
-
-
-
Method Detail
-
close
public void close() throws java.io.IOException
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
- Throws:
java.io.IOException
- If there is an error closing this resource.
-
seek
public void seek(long position) throws java.io.IOException
Seek to a position in the data.- Specified by:
seek
in interfaceRandomAccessRead
- Parameters:
position
- The position to seek to.- Throws:
java.io.IOException
- If there is an error while seeking.
-
getPosition
public long getPosition() throws java.io.IOException
Returns offset of next byte to be returned by a read method.- 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) - Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException
Read a single byte of data.- Specified by:
read
in interfaceSequentialRead
- 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 offset, int length) throws java.io.IOException
Read a buffer of data.- Specified by:
read
in interfaceSequentialRead
- Parameters:
b
- The buffer to write the data to.offset
- Offset into the buffer to start writing.length
- 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.
-
length
public long length() throws java.io.IOException
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.
-
write
public void write(byte[] b, int offset, int length) throws java.io.IOException
Write a buffer of data to the stream.- Specified by:
write
in interfaceRandomAccess
- Parameters:
b
- The buffer to get the data from.offset
- An offset into the buffer to get the data from.length
- The length of data to write.- Throws:
java.io.IOException
- If there is an error while writing the data.
-
write
public void write(int b) throws java.io.IOException
Write a byte to the stream.- Specified by:
write
in interfaceRandomAccess
- Parameters:
b
- The byte to write.- Throws:
java.io.IOException
- If there is an IO error while writing.
-
-