Package org.python.core.io

# Class RawIOBase

java.lang.Object
org.python.core.io.IOBase
org.python.core.io.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

## Field Summary

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

`DEFAULT_BUFFER_SIZE`

## Constructor Summary

Constructors
Constructor
Description
`RawIOBase()`

## Method Summary

Modifier and Type
Method
Description
`RawIOBase`
`fileno()`
Returns underlying file descriptor if one exists.
`abstract Channel`
`getChannel()`
Return the underlying Java nio Channel.
`ByteBuffer`
`read(int size)`
Read and return up to size bytes, contained in a ByteBuffer.
`ByteBuffer`
`readall()`
Read until EOF, using multiple read() calls.
`int`
`readinto(ByteBuffer buf)`
Read up to buf.remaining() bytes into buf.
`long`
`readinto(ByteBuffer[] bufs)`
Read bytes into each of the specified ByteBuffers.
`int`
`write(ByteBuffer buf)`
Write the given ByteBuffer to the IO stream.
`long`
`write(ByteBuffer[] bufs)`
Write the given ByteBuffers to the IO stream.

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

`asInputStream, asOutputStream, checkClosed, checkReadable, checkWritable, close, closed, flush, isatty, readable, seek, seek, tell, truncate, writable`

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

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

## Constructor Details

### RawIOBase

public RawIOBase()

## Method Details

### read

public 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 ByteBuffer readall()
Read until EOF, using multiple read() calls.

Returns:
  a ByteBuffer containing the bytes read

### readinto

public int readinto(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(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(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(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 Channel getChannel()
Return the underlying Java nio Channel.

Returns:
  the underlying Java nio Channel