## org.biojava.utils.io
Class RandomAccessReader

    java.lang.Object
      java.io.Reader
          org.biojava.utils.io.RandomAccessReader

All Implemented Interfaces:
  Closeable, Readable

    public class RandomAccessReader

extends Reader

`RandomAccessReader` extends `Reader` to provide a means to create buffered `Reader`s from `RandomAccessFile`s.

Since:
  1.2
Author:
  Keith James

Field Summary

Fields inherited from class java.io.Reader
`lock`

Constructor Summary
`RandomAccessReader(RandomAccessFile raf)` Creates a new `RandomAccessReader` wrapping the `RandomAccessFile` and using a default-sized buffer (8192 bytes).
`RandomAccessReader(RandomAccessFile raf, int sz)` Creates a new `RandomAccessReader` wrapping the `RandomAccessFile` and using a buffer of the specified size.

Method Summary
`void` `close()` `close` closes the underlying `RandomAccessFile`.
`long` `getFilePointer()` `getFilePointer` returns the effective position of the pointer in the underlying `RandomAccessFile`.
`long` `length()` `length` returns the length of the underlying `RandomAccessFile`.
`int` `read()` `read` reads one byte from the underlying `RandomAccessFile`.
`int` `read(char[] cbuf, int off, int len)` `read` reads from the underlying `RandomAccessFile` into an array.
`void` `seek(long pos)` `seek` moves the pointer to the specified position.

Methods inherited from class java.io.Reader
`mark, markSupported, read, read, ready, reset, skip`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RandomAccessReader

    public RandomAccessReader(RandomAccessFile raf)
                       throws IOException

  Creates a new `RandomAccessReader` wrapping the `RandomAccessFile` and using a default-sized buffer (8192 bytes).

  Parameters:
    `raf` - a `RandomAccessFile` to wrap.
  Throws:
    `IOException` - if an error occurs.

### RandomAccessReader

    public RandomAccessReader(RandomAccessFile raf,
                              int sz)
                       throws IOException

  Creates a new `RandomAccessReader` wrapping the `RandomAccessFile` and using a buffer of the specified size.

  Parameters:
    `raf` - a `RandomAccessFile` to wrap.
    `sz` - an `int` buffer size.
  Throws:
    `IOException`

Method Detail

### close

    public void close()
               throws IOException

  `close` closes the underlying `RandomAccessFile`.

  Specified by:
    `close` in interface `Closeable`
  Specified by:
    `close` in class `Reader`
  Throws:
    `IOException` - if an error occurs.

### length

    public long length()
                throws IOException

  `length` returns the length of the underlying `RandomAccessFile`.

  Returns:
    a `long`.
  Throws:
    `IOException` - if an error occurs.

### read

    public final int read()
                   throws IOException

  `read` reads one byte from the underlying `RandomAccessFile`.

  Overrides:
    `read` in class `Reader`
  Returns:
    an `int`, -1 if the end of the stream has been reached.
  Throws:
    `IOException` - if an error occurs.

### read

    public int read(char[] cbuf,
                    int off,
                    int len)
             throws IOException

  `read` reads from the underlying `RandomAccessFile` into an array.

  Specified by:
    `read` in class `Reader`
  Parameters:
    `cbuf` - a `char []` array to read into.
    `off` - an `int` offset in the array at which to start storing chars.
    `len` - an `int` maximum number of char to read.
  Returns:
    an `int` number of chars read, or -1 if the end of the stream has been reached.
  Throws:
    `IOException` - if an error occurs.

### getFilePointer

    public long getFilePointer()
                        throws IOException

  `getFilePointer` returns the effective position of the pointer in the underlying `RandomAccessFile`.

  Returns:
    a `long` offset.
  Throws:
    `IOException` - if an error occurs.

### seek

    public void seek(long pos)
              throws IOException

  `seek` moves the pointer to the specified position.

  Parameters:
    `pos` - a `long` offset.
  Throws:
    `IOException` - if an error occurs.