ucar.unidata.io
Class InMemoryRandomAccessFile

java.lang.Object
  extended by ucar.unidata.io.RandomAccessFile
      extended by ucar.unidata.io.InMemoryRandomAccessFile
All Implemented Interfaces:
java.io.DataInput, java.io.DataOutput

public class InMemoryRandomAccessFile
extends RandomAccessFile

A RandomAccessFile stored entirely in memory as a byte array.

Author:
john

Field Summary
 
Fields inherited from class ucar.unidata.io.RandomAccessFile
BIG_ENDIAN, LITTLE_ENDIAN
 
Constructor Summary
InMemoryRandomAccessFile(java.lang.String name, byte[] data)
          A RandomAccessFile stored entirely in memory as a byte array.
 
Method Summary
 long length()
          Get the length of the file.
 long readToByteChannel(java.nio.channels.WritableByteChannel dest, long offset, long nbytes)
          Read nbytes bytes, at the specified file offset, send to a WritableByteChannel.
 void setBufferSize(int bufferSize)
          Set the buffer size.
 
Methods inherited from class ucar.unidata.io.RandomAccessFile
close, flush, getBufferSize, getDebugLeaks, getFD, getFilePointer, getLocation, getOpenFiles, getRandomAccessFile, isAtEndOfFile, order, read, read, read, readBoolean, readByte, readBytes, readChar, readDouble, readDouble, readFloat, readFloat, readFully, readFully, readInt, readInt, readIntUnbuffered, readLine, readLong, readLong, readShort, readShort, readString, readUnsignedByte, readUnsignedShort, readUTF, searchForward, seek, setDebugAccess, setDebugLeaks, setExtendMode, setMinLength, skipBytes, toString, unread, write, write, write, writeBoolean, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeChar, writeChar, writeChars, writeDouble, writeDouble, writeFloat, writeFloat, writeInt, writeInt, writeLong, writeLong, writeShort, writeShort, writeUTF
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InMemoryRandomAccessFile

public InMemoryRandomAccessFile(java.lang.String name,
                                byte[] data)
A RandomAccessFile stored entirely in memory as a byte array.

Parameters:
name - used as the location
data - the complete data file
Method Detail

length

public long length()
Description copied from class: RandomAccessFile
Get the length of the file. The data in the buffer (which may not have been written the disk yet) is taken into account.

Overrides:
length in class RandomAccessFile
Returns:
the length of the file in bytes.

setBufferSize

public void setBufferSize(int bufferSize)
Description copied from class: RandomAccessFile
Set the buffer size. If writing, call flush() first.

Overrides:
setBufferSize in class RandomAccessFile
Parameters:
bufferSize - length in bytes

readToByteChannel

public long readToByteChannel(java.nio.channels.WritableByteChannel dest,
                              long offset,
                              long nbytes)
                       throws java.io.IOException
Description copied from class: RandomAccessFile
Read nbytes bytes, at the specified file offset, send to a WritableByteChannel. This will block until all bytes are read. This uses the underlying file channel directly, bypassing all user buffers.

Overrides:
readToByteChannel in class RandomAccessFile
Parameters:
dest - write to this WritableByteChannel.
offset - the offset in the file where copying will start.
nbytes - the number of bytes to read.
Returns:
the actual number of bytes read and transfered
Throws:
java.io.IOException - if an I/O error occurs.