Class RawIOBase

  • Direct Known Subclasses:
    FileIO, SocketIOBase, StreamIO

    public abstract class RawIOBase
    extends IOBase
    Base class for raw binary I/O. RawIOBases wrap raw Java I/O objects (typically nio Channels). They provide a convenient means of handling raw Java I/O objects in the context of Python files. RawIOBases maintain state about their underlying I/O objects (such as their mode) and translate Java exceptions into PyExceptions. The read() method is implemented by calling readinto(); derived classes that want to support read() only need to implement readinto() as a primitive operation. In general, readinto() can be more efficient than read().
    Author:
    Philip Jenvey
    • Constructor Detail

      • RawIOBase

        public RawIOBase()
    • Method Detail

      • read

        public java.nio.ByteBuffer read​(int size)
        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
        Parameters:
        size - the number of bytes to read
        Returns:
        a ByteBuffer containing the bytes read
      • readall

        public java.nio.ByteBuffer readall()
        Read until EOF, using multiple read() calls.
        Returns:
        a ByteBuffer containing the bytes read
      • readinto

        public int readinto​(java.nio.ByteBuffer buf)
        Read up to buf.remaining() bytes into buf. Returns number of bytes read (0 for EOF).
        Parameters:
        buf - a ByteBuffer to read bytes into
        Returns:
        the amount of data read as an int
      • readinto

        public long readinto​(java.nio.ByteBuffer[] bufs)
        Read bytes into each of the specified ByteBuffers. Returns number of bytes read (0 for EOF).
        Parameters:
        bufs - an array of ByteBuffers to read bytes into
        Returns:
        the amount of data read as a long
      • write

        public int write​(java.nio.ByteBuffer buf)
        Write the given ByteBuffer to the IO stream. Returns the number of bytes written, which may be less than buf.remaining().
        Parameters:
        buf - a ByteBuffer value
        Returns:
        the number of bytes written as an int
      • write

        public long write​(java.nio.ByteBuffer[] bufs)
        Write the given ByteBuffers to the IO stream. Returns the number of bytes written, which may be less than the combined value of all the buf.remaining()'s.
        Parameters:
        bufs - an array of ByteBuffers
        Returns:
        the number of bytes written as a long
      • fileno

        public RawIOBase fileno()
        Description copied from class: IOBase
        Returns underlying file descriptor if one exists. Raises IOError if the IO object does not use a file descriptor.
        Overrides:
        fileno in class IOBase
        Returns:
        a file descriptor
      • getChannel

        public abstract java.nio.channels.Channel getChannel()
        Return the underlying Java nio Channel.
        Returns:
        the underlying Java nio Channel