# RecordReadChannel
Date: 2012-02-24

## com.google.appengine.api.files
Interface RecordReadChannel

    public interface RecordReadChannel

A channel for reading records from a `FileReadChannel`.

The format of these records is defined by the leveldb log format: http://leveldb.googlecode.com/svn/trunk/doc/log_format.txt

An instance of `RecordReadChannel` may be obtained from the method: `FileService.openRecordReadChannel(AppEngineFile, boolean)`.

Method Summary
`long` `position()` Returns the position in the underlying `FileReadChannel`.
`void` `position(long newPosition)` Sets the read position of the underlying `FileReadChannel`.
`java.nio.ByteBuffer` `readRecord()` Reads a record from the file and returns it in a `ByteBuffer`.

Method Detail

### readRecord

    java.nio.ByteBuffer readRecord()
                                   throws java.io.IOException

  Reads a record from the file and returns it in a `ByteBuffer`. This ByteBuffer is reused, so if the user would like to save the result of `readRecord()`, they need to copy the output of this method.

  Returns:
    a `ByteBuffer` containing the record.
  Throws:
    `java.io.IOException`

### position

    long position()
                  throws java.io.IOException

  Returns the position in the underlying `FileReadChannel`.

  Returns:
    the position.
  Throws:
    `java.io.IOException`

### position

    void position(long newPosition)
                  throws java.io.IOException

  Sets the read position of the underlying `FileReadChannel`. The position value should only be set using the value obtained from a previous `position()` call.

  Parameters:
    `newPosition` - the position at which to set the reader.
  Throws:
    `java.io.IOException`