BufferedRandomAccessFile
Date: 2017-05-25

org.apache.fontbox.ttf

## Class BufferedRandomAccessFile

- java.lang.Object
- - java.io.RandomAccessFile
  - - org.apache.fontbox.ttf.BufferedRandomAccessFile

- All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.io.DataOutput, java.lang.AutoCloseable

      public class BufferedRandomAccessFile
      extends java.io.RandomAccessFile

  This class is a version of the one published at https://code.google.com/p/jmzreader/wiki/BufferedRandomAccessFile augmented to handle unsigned bytes. The original class is published under Apache 2.0 license. Fix is marked below This is an optimized version of the RandomAccessFile class as described by Nick Zhang on JavaWorld.com. The article can be found at http://www.javaworld.com/javaworld/javatips/jw-javatip26.html

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BufferedRandomAccessFile(java.io.File file, java.lang.String mode, int bufsize)` Creates a new instance of the BufferedRandomAccessFile.
    `BufferedRandomAccessFile(java.lang.String filename, java.lang.String mode, int bufsize)` Creates a new instance of the BufferedRandomAccessFile.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `getFilePointer()`
    `int` | `read()`
    `int` | `read(byte[] b, int off, int len)`
    `void` | `seek(long pos)`

    - ### Methods inherited from class java.io.RandomAccessFile

      `close, getChannel, getFD, length, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, setLength, skipBytes, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTF`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BufferedRandomAccessFile

          public BufferedRandomAccessFile(java.lang.String filename,
                                  java.lang.String mode,
                                  int bufsize)
                                   throws java.io.FileNotFoundException

      Creates a new instance of the BufferedRandomAccessFile.
      Parameters:
        `filename` - The path of the file to open.
        `mode` - Specifies the mode to use ("r", "rw", etc.) See the BufferedLineReader documentation for more information.
        `bufsize` - The buffer size (in bytes) to use.
      Throws:
        `java.io.FileNotFoundException` - If the mode is "r" but the given string does not denote an existing regular file, or if the mode begins with "rw" but the given string does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file.

    - #### BufferedRandomAccessFile

          public BufferedRandomAccessFile(java.io.File file,
                                  java.lang.String mode,
                                  int bufsize)
                                   throws java.io.FileNotFoundException

      Creates a new instance of the BufferedRandomAccessFile.
      Parameters:
        `file` - The file to open.
        `mode` - Specifies the mode to use ("r", "rw", etc.) See the BufferedLineReader documentation for more information.
        `bufsize` - The buffer size (in bytes) to use.
      Throws:
        `java.io.FileNotFoundException` - If the mode is "r" but the given file path does not denote an existing regular file, or if the mode begins with "rw" but the given file path does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file.

  - ### Method Detail

    - #### read

          public final int read()
                         throws java.io.IOException

      Overrides:
        `read` in class `java.io.RandomAccessFile`
      Throws:
        `java.io.IOException`

    - #### read

          public int read(byte[] b,
                 int off,
                 int len)
                   throws java.io.IOException

      Overrides:
        `read` in class `java.io.RandomAccessFile`
      Throws:
        `java.io.IOException`

    - #### getFilePointer

          public long getFilePointer()
                              throws java.io.IOException

      Overrides:
        `getFilePointer` in class `java.io.RandomAccessFile`
      Throws:
        `java.io.IOException`

    - #### seek

          public void seek(long pos)
                    throws java.io.IOException

      Overrides:
        `seek` in class `java.io.RandomAccessFile`
      Throws:
        `java.io.IOException`