Class RAFRandomAccessSource

java.lang.Object
com.itextpdf.text.io.RAFRandomAccessSource
All Implemented Interfaces:
RandomAccessSource

class RAFRandomAccessSource extends Object implements RandomAccessSource
A RandomAccessSource that uses a RandomAccessFile as it's source Note: Unlike most of the RandomAccessSource implementations, this class is not thread safe
  • Field Details

    • raf

      private final RandomAccessFile raf
      The source
    • length

      private final long length
      The length of the underling RAF. Note that the length is cached at construction time to avoid the possibility of IOExceptions when reading the length.
  • Constructor Details

    • RAFRandomAccessSource

      public RAFRandomAccessSource(RandomAccessFile raf) throws IOException
      Creates this object
      Parameters:
      raf - the source for this RandomAccessSource
      Throws:
      IOException - if the RAF can't be read
  • Method Details

    • get

      public int get(long position) throws IOException
      Gets a byte at the specified position
      Specified by:
      get in interface RandomAccessSource
      Returns:
      the byte, or -1 if EOF is reached
      Throws:
      IOException
    • get

      public int get(long position, byte[] bytes, int off, int len) throws IOException
      Gets an array at the specified position. If the number of bytes requested cannot be read, the bytes that can be read will be placed in bytes and the number actually read will be returned.
      Specified by:
      get in interface RandomAccessSource
      Parameters:
      position - the position in the RandomAccessSource to read from
      bytes - output buffer
      off - offset into the output buffer where results will be placed
      len - the number of bytes to read
      Returns:
      the number of bytes actually read, or -1 if the file is at EOF
      Throws:
      IOException
    • length

      public long length()
      Note: the length is determined when the RAFRandomAccessSource is constructed. If the file length changes after construction, that change will not be reflected in this call.
      Specified by:
      length in interface RandomAccessSource
      Returns:
      the length of this source
    • close

      public void close() throws IOException
      Closes the underlying RandomAccessFile
      Specified by:
      close in interface RandomAccessSource
      Throws:
      IOException