BufferedRandom (Jython API documentation)
Date: 2022-09-10

org.python.core.io

## Class BufferedRandom

- java.lang.Object
- - org.python.core.io.IOBase
  - - org.python.core.io.BufferedIOBase
    - - org.python.core.io.BufferedIOMixin
      - - org.python.core.io.BufferedRandom

- Direct Known Subclasses:
    LineBufferedRandom

      public class BufferedRandom
      extends BufferedIOMixin

  A buffered reader and writer together for a random access file.
  Author:
    Philip Jenvey

- - ### Field Summary

    - ### Fields inherited from class org.python.core.io.IOBase

      `DEFAULT_BUFFER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BufferedRandom(RawIOBase rawIO, int bufferSize)` Construct a BufferedRandom of bufferSize, wrapping the given RawIOBase.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `flush()` Flushes write buffers, if applicable.
    `java.nio.ByteBuffer` | `peek(int size)` Returns buffered bytes without advancing the position.
    `java.nio.ByteBuffer` | `read(int size)` Read and return up to size bytes, contained in a ByteBuffer.
    `int` | `read1(java.nio.ByteBuffer bytes)` Reads up to bytes.remaining() bytes.
    `java.nio.ByteBuffer` | `readall()` Read until EOF.
    `int` | `readinto(java.nio.ByteBuffer bytes)` Read up to bytes.remaining() bytes into the given ByteBuffer.
    `long` | `seek(long pos, int whence)` Seek to byte offset `pos` relative to position indicated by `whence`.
    `long` | `tell()` Return the current stream position.
    `int` | `write(java.nio.ByteBuffer bytes)` Write the given ByteBuffer to the IO stream.

    - ### Methods inherited from class org.python.core.io.BufferedIOMixin

      `asInputStream, asOutputStream, close, closed, fileno, isatty, readable, truncate, writable`

    - ### Methods inherited from class org.python.core.io.BufferedIOBase

      `buffered, clear`

    - ### Methods inherited from class org.python.core.io.IOBase

      `checkClosed, checkReadable, checkWritable, seek`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BufferedRandom

          public BufferedRandom(RawIOBase rawIO,
                                int bufferSize)

      Construct a BufferedRandom of bufferSize, wrapping the given RawIOBase.
      Parameters:
        `rawIO` -
        `bufferSize` -

  - ### Method Detail

    - #### 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 java.nio.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 java.nio.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(java.nio.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(java.nio.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 java.nio.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(java.nio.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`

Jython homepage