Class BufferedRandom

Direct Known Subclasses:
LineBufferedRandom

public class BufferedRandom extends BufferedIOMixin
A buffered reader and writer together for a random access file.
Author:
Philip Jenvey
  • Constructor Details

    • BufferedRandom

      public BufferedRandom(RawIOBase rawIO, int bufferSize)
      Construct a BufferedRandom of bufferSize, wrapping the given RawIOBase.
      Parameters:
      rawIO -
      bufferSize -
  • Method Details

    • seek

      public long seek(long pos, int whence)
      Description copied from class: IOBase
      Seek to byte offset pos relative to position indicated by whence.
      Semantics
      whence Seek to pos
      0 Start of stream (the default).Should be ≥0.
      1 Current position + pos Either sign.
      2 End of stream + pos Usually ≤0.
      Returns the new absolute position.
      Overrides:
      seek in class BufferedIOMixin
      Parameters:
      pos - a long position value
      whence - an int whence value
      Returns:
      a long position value seeked to
    • tell

      public long tell()
      Description copied from class: IOBase
      Return the current stream position.
      Overrides:
      tell in class BufferedIOMixin
      Returns:
      a long position value
    • read

      public ByteBuffer read(int size)
      Description copied from class: BufferedIOBase
      Read and return up to size bytes, contained in a ByteBuffer. ByteBuffers returned from read are already flip()'d. Returns an empty ByteBuffer on EOF
      Overrides:
      read in class BufferedIOBase
      Parameters:
      size - the number of bytes to read
      Returns:
      a ByteBuffer containing the bytes read
    • readall

      public ByteBuffer readall()
      Description copied from class: BufferedIOBase
      Read until EOF.
      Overrides:
      readall in class BufferedIOBase
      Returns:
      a ByteBuffer containing the bytes read
    • readinto

      public int readinto(ByteBuffer bytes)
      Description copied from class: BufferedIOBase
      Read up to bytes.remaining() bytes into the given ByteBuffer. Returns number of bytes read (0 for EOF).
      Overrides:
      readinto in class BufferedIOBase
      Parameters:
      bytes - a ByteBuffer to read bytes into
      Returns:
      the amount of data read as an int
    • write

      public int write(ByteBuffer bytes)
      Description copied from class: BufferedIOBase
      Write the given ByteBuffer to the IO stream. Returns the number of bytes written, which may be less than bytes.remaining().
      Overrides:
      write in class BufferedIOBase
      Parameters:
      bytes - a ByteBuffer value
      Returns:
      the number of bytes written as an int
    • peek

      public ByteBuffer peek(int size)
      Description copied from class: BufferedIOBase
      Returns buffered bytes without advancing the position. The argument indicates a desired minimal number of bytes; we do at most one raw read to satisfy it. We never return more than the size of the underlying buffer;
      Overrides:
      peek in class BufferedIOBase
      Parameters:
      size - the minimal number of bytes as an int
      Returns:
      a ByteBuffer containing the bytes read
    • read1

      public int read1(ByteBuffer bytes)
      Description copied from class: BufferedIOBase
      Reads up to bytes.remaining() bytes. Returns up to bytes.remaining() bytes. If at least one byte is buffered, we only return buffered bytes. Otherwise, we do one raw read.
      Overrides:
      read1 in class BufferedIOBase
      Parameters:
      bytes - a ByteBuffer to read bytes into
      Returns:
      the amount of data read as an int
    • flush

      public void flush()
      Description copied from class: IOBase
      Flushes write buffers, if applicable. This is a no-op for read-only and non-blocking streams.
      Overrides:
      flush in class BufferedIOMixin