org.python.core.io
Class RawIOBase

java.lang.Object
  extended by org.python.core.io.IOBase
      extended by 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
RawIOBase()
           
 
Method Summary
 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 Detail

RawIOBase

public RawIOBase()
Method Detail

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


Jython homepage