org.biojava.utils.io
Class RandomAccessReader

java.lang.Object
  extended by java.io.Reader
      extended by 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 Readers from RandomAccessFiles.

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.