Interface IOHandler

All Known Implementing Classes:
ByteArrayIOHandler, FileChannelIOHandler, FilterIOHandler, ImageIOHandler, MappedFileChannelIOHandler, RandomAccessFileIOHandler

public interface IOHandler
Provides the mechanism to read and write byte data at a specified position within a random access data file, stream or memory buffer.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Returns the current size of the backing file, array or stream.
    void
    read(DataContext context, byte[] data, long position)
    Reads a sequence of up to data.length bytes into the given array starting from the the given position.
    void
    write(DataContext context, byte[] data, long position)
    Writes a sequence of up to data.length bytes to the file, starting at the given position.
  • Method Details

    • read

      void read(DataContext context, byte[] data, long position) throws IOException
      Reads a sequence of up to data.length bytes into the given array starting from the the given position. If the position is greater than the file's current size then no bytes are read.

      A read operation might not fill the array, and in fact it might not read any bytes at all. Whether or not it does so, depends upon the state of the file, e.g. only bytes that remain in the file starting from the given position will be read.

      Parameters:
      context - The I/O context.
      data - The data array into which bytes are to be transferred.
      position - The file position at which the transfer is to begin; must be non-negative.
      Throws:
      IOException - If an I/O error occurs.
    • write

      void write(DataContext context, byte[] data, long position) throws IOException
      Writes a sequence of up to data.length bytes to the file, starting at the given position. If the given position is greater than the file's current size then the file will be grown to accommodate the new bytes; the values of any bytes between the previous end-of-file and the newly-written bytes are unspecified.
      Parameters:
      context - The I/O context.
      data - The data array from which bytes are to be transferred.
      position - The file position at which the transfer is to begin; must be non-negative.
      Throws:
      IOException - If an I/O error occurs.
    • getMaxPosition

      long getMaxPosition() throws IOException
      Returns the current size of the backing file, array or stream.

      This value may change, while writing to a growing file or array. If the value is unknown -1 will be returned.

      Returns:
      Te maximum position.
      Throws:
      IOException - If an I/O error occurs.