Class RandomAccessBuffer

java.lang.Object
org.apache.pdfbox.io.RandomAccessBuffer
All Implemented Interfaces:
Closeable, AutoCloseable, RandomAccess, RandomAccessRead, SequentialRead

public class RandomAccessBuffer extends Object implements RandomAccess, Closeable
An implementation of the RandomAccess interface to store a pdf in memory. The data will be stored in 16kb chunks organized in an ArrayList.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
     
    void
    Release resources that are being held.
    long
    Returns offset of next byte to be returned by a read method.
    long
    The total number of bytes that are available.
    int
    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.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RandomAccessBuffer

      public RandomAccessBuffer()
      Default constructor.
  • Method Details

    • clone

      public RandomAccessBuffer clone()
      Overrides:
      clone in class Object
    • close

      public void close() throws IOException
      Release resources that are being held.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface SequentialRead
      Throws:
      IOException - If there is an error closing this resource.
    • seek

      public void seek(long position) throws IOException
      Seek to a position in the data.
      Specified by:
      seek in interface RandomAccessRead
      Parameters:
      position - The position to seek to.
      Throws:
      IOException - If there is an error while seeking.
    • getPosition

      public long getPosition() throws IOException
      Returns offset of next byte to be returned by a read method.
      Specified by:
      getPosition in interface RandomAccessRead
      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:
      IOException
    • read

      public int read() throws IOException
      Read a single byte of data.
      Specified by:
      read in interface SequentialRead
      Returns:
      The byte of data that is being read.
      Throws:
      IOException - If there is an error while reading the data.
    • read

      public int read(byte[] b, int offset, int length) throws IOException
      Read a buffer of data.
      Specified by:
      read in interface SequentialRead
      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:
      IOException - If there was an error while reading the data.
    • length

      public long length() throws IOException
      The total number of bytes that are available.
      Specified by:
      length in interface RandomAccessRead
      Returns:
      The number of bytes available.
      Throws:
      IOException - If there is an IO error while determining the length of the data stream.
    • write

      public void write(int b) throws IOException
      Write a byte to the stream.
      Specified by:
      write in interface RandomAccess
      Parameters:
      b - The byte to write.
      Throws:
      IOException - If there is an IO error while writing.
    • write

      public void write(byte[] b, int offset, int length) throws IOException
      Write a buffer of data to the stream.
      Specified by:
      write in interface RandomAccess
      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:
      IOException - If there is an error while writing the data.