Class InMemoryRandomAccessFile

java.lang.Object
ucar.unidata.io.RandomAccessFile
ucar.unidata.io.InMemoryRandomAccessFile
All Implemented Interfaces:
Closeable, DataInput, DataOutput, AutoCloseable, ucar.nc2.util.cache.FileCacheable

public class InMemoryRandomAccessFile extends RandomAccessFile
A RandomAccessFile stored entirely in memory as a byte array.
  • Constructor Details

    • InMemoryRandomAccessFile

      public InMemoryRandomAccessFile(String name, byte[] data)
      Constructor.
      Parameters:
      name - used as the location
      data - the complete data file
  • Method Details

    • 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(WritableByteChannel dest, long offset, long nbytes) throws 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:
      IOException - if an I/O error occurs.