Interface RandomAccessData

All Known Implementing Classes:
RandomAccessDataFile

public interface RandomAccessData
Interface that provides read-only random access to some underlying data. Implementations must allow concurrent reads in a thread-safe manner.
Since:
1.0.0
Author:
Phillip Webb
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns an InputStream that can be used to read the underlying data.
    long
    Returns the size of the data.
    getSubsection(long offset, long length)
    Returns a new RandomAccessData for a specific subsection of this data.
    byte[]
    Reads all the data and returns it as a byte array.
    byte[]
    read(long offset, long length)
    Reads the length bytes of data starting at the given offset.
  • Method Details

    • getInputStream

      InputStream getInputStream() throws IOException
      Returns an InputStream that can be used to read the underlying data. The caller is responsible close the underlying stream.
      Returns:
      a new input stream that can be used to read the underlying data.
      Throws:
      IOException - if the stream cannot be opened
    • getSubsection

      RandomAccessData getSubsection(long offset, long length)
      Returns a new RandomAccessData for a specific subsection of this data.
      Parameters:
      offset - the offset of the subsection
      length - the length of the subsection
      Returns:
      the subsection data
    • read

      byte[] read() throws IOException
      Reads all the data and returns it as a byte array.
      Returns:
      the data
      Throws:
      IOException - if the data cannot be read
    • read

      byte[] read(long offset, long length) throws IOException
      Reads the length bytes of data starting at the given offset.
      Parameters:
      offset - the offset from which data should be read
      length - the number of bytes to be read
      Returns:
      the data
      Throws:
      IOException - if the data cannot be read
      IndexOutOfBoundsException - if offset is beyond the end of the file or subsection
      EOFException - if offset plus length is greater than the length of the file or subsection
    • getSize

      long getSize()
      Returns the size of the data.
      Returns:
      the size