Interface ByteReader

All Known Subinterfaces:
ByteWriter
All Known Implementing Classes:
ByteArrayByteReader, ByteArrayByteWriter, ByteBufferByteReader, ByteBufferByteWriter, FilterByteReader, FilterByteWriter, InputStreamByteReader, InputStreamByteWriter, LazyRandomAccessFileByteReader, LazyRandomAccessFileByteWriter, MemoryMappedByteWriter, NonCachedRandomAccessFileByteReader, NonCachedRandomAccessFileByteWriter, RandomAccessFileByteReader, RandomAccessFileByteWriter, RangedByteWriter

public interface ByteReader

The ByteReader provides an abstraction to a linear, zero-based, semi-infinite array of bytes that can be read from at any point. The actual repository can store these bytes in any manner that best fits the storage medium but the view on them provided by this interface must be as above.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    The value returned when reads occur outside of the legal range.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes this ByteReader and releases any system resources associated with this stream.
    long
    Returns the number of total bytes in the repository that are visible through this API.
    int
    read(long position)
    Read a single byte from the underlying bytes at the given position.
    int
    read(long position, byte[] b, int offset, int length)
    Transfers bytes from the underlying repository into the given destination array.
  • Field Details

    • EOF

      static final int EOF
      The value returned when reads occur outside of the legal range.
      See Also:
  • Method Details

    • read

      int read(long position) throws IOException
      Read a single byte from the underlying bytes at the given position.
      Parameters:
      position - the position to read the byte from.
      Returns:
      the byte at the postion or EOF if the position is outside of the legal range.
      Throws:
      IOException - if an error occurs during the read operation
    • read

      int read(long position, byte[] b, int offset, int length) throws IOException
      Transfers bytes from the underlying repository into the given destination array. Copy up to length bytes from the repository starting at the postion given into the given array starting at the given offset.
      Parameters:
      position - the position to read the byte from.
      b - the array to write the bytes into.
      offset - the offset in the array at which the first byte is written.
      length - the maximum number of bytes to write into the array.
      Returns:
      the number of bytes actually written to the array.
      Throws:
      IOException - if an error occurs during the read operation
    • length

      long length() throws IOException
      Returns the number of total bytes in the repository that are visible through this API.
      Returns:
      the number of bytes in the repository.
      Throws:
      IOException - if an error occurs while trying to determine the length
    • close

      void close() throws IOException
      Closes this ByteReader and releases any system resources associated with this stream.
      Throws:
      IOException - if an error occurs while trying to close