org.python.core.io
Class BufferedRandom

java.lang.Object
  extended by org.python.core.io.IOBase
      extended by org.python.core.io.BufferedIOBase
          extended by org.python.core.io.BufferedIOMixin
              extended by 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
BufferedRandom(RawIOBase rawIO, int bufferSize)
          Construct a BufferedRandom of bufferSize, wrapping the given RawIOBase.
 
Method Summary
 void flush()
          Flushes write buffers, if applicable.
 ByteBuffer peek(int size)
          Returns buffered bytes without advancing the position.
 ByteBuffer read(int size)
          Read and return up to size bytes, contained in a ByteBuffer.
 int read1(ByteBuffer bytes)
          Reads up to bytes.remaining() bytes.
 ByteBuffer readall()
          Read until EOF.
 int readinto(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: 0 Start of stream (the default). pos should be >= 0; 1 Current position - whence may be negative; 2 End of stream - whence usually negative.
 long tell()
          Return the current stream position.
 int write(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: 0 Start of stream (the default). pos should be >= 0; 1 Current position - whence may be negative; 2 End of stream - whence usually negative. 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


Jython homepage