ucar.unidata.io
Class InMemoryRandomAccessFile
java.lang.Object
ucar.unidata.io.RandomAccessFile
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
| Fields inherited from class ucar.unidata.io.RandomAccessFile |
BIG_ENDIAN, bigEndian, buffer, bufferStart, dataEnd, dataSize, debugAccess, debugLeaks, defaultBufferSize, endOfFile, file, fileChannel, filePosition, LITTLE_ENDIAN, location, openFiles, readonly, showOpen |
|
Method Summary |
long |
length()
Get the length of the file. |
protected int |
read_(long pos,
byte[] b,
int offset,
int len)
Read directly from file, without going through the buffer. |
long |
readToByteChannel(java.nio.channels.WritableByteChannel dest,
long offset,
long nbytes)
Read up to nbytes bytes, at a specified offset, send to a WritableByteChannel. |
| Methods inherited from class ucar.unidata.io.RandomAccessFile |
close, flush, getDebugLeaks, getFD, getFilePointer, getLocation, getOpenFiles, getRandomAccessFile, isAtEndOfFile, order, read, read, read, readBoolean, readBuffer, readByte, readBytes, 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 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
InMemoryRandomAccessFile
public InMemoryRandomAccessFile(java.lang.String name,
byte[] data)
- Constructor for in-memory "files"
- Parameters:
name - used as a namedata - the complete file
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.
read_
protected int read_(long pos,
byte[] b,
int offset,
int len)
throws java.io.IOException
- Description copied from class:
RandomAccessFile
- Read directly from file, without going through the buffer.
All reading goes through here or readToByteChannel;
- Overrides:
read_ in class RandomAccessFile
- Parameters:
pos - start here in the fileb - put data into this bufferoffset - buffer offsetlen - this number of bytes
- Returns:
- actual number of bytes read
- Throws:
java.io.IOException - on io error
readToByteChannel
public long readToByteChannel(java.nio.channels.WritableByteChannel dest,
long offset,
long nbytes)
throws java.io.IOException
- Read up to
nbytes bytes, at a specified 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, or -1 if there is no
more data due to the end of the file being reached.
- Throws:
java.io.IOException - if an I/O error occurs.