org.python.core.io
Class FileIO

java.lang.Object
  extended by org.python.core.io.IOBase
      extended by org.python.core.io.RawIOBase
          extended by org.python.core.io.FileIO

public class FileIO
extends RawIOBase

Raw I/O implementation for OS files.

Author:
Philip Jenvey

Field Summary
 
Fields inherited from class org.python.core.io.IOBase
DEFAULT_BUFFER_SIZE
 
Constructor Summary
FileIO(FileChannel fileChannel, String mode)
          Construct a FileIO instance with the given FileChannel.
FileIO(String name, String mode)
          Construct a FileIO instance for the specified file name.
 
Method Summary
 InputStream asInputStream()
          Coerce this into an InputStream if possible, or return null.
 OutputStream asOutputStream()
          Coerce this into an OutputStream if possible, or return null.
 void close()
          Flushes and closes the IO object.
 Channel getChannel()
          Return the underlying Java nio Channel.
 boolean isatty()
          Returns whether this is an 'interactive' stream.
 boolean readable()
          Return whether this file was opened for reading.
 ByteBuffer readall()
          Read until EOF with one readinto() call.
 int readinto(ByteBuffer buf)
          Read up to buf.remaining() bytes into buf.
 long readinto(ByteBuffer[] bufs)
          Read bytes into each of the specified ByteBuffers via scatter i/o.
 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.
 long truncate(long size)
          Truncate file to size in bytes.
 boolean writable()
          Return whether this file was opened for writing.
 int write(ByteBuffer buf)
          Write the given ByteBuffer to the IO stream.
 long write(ByteBuffer[] bufs)
          Write bytes from each of the specified ByteBuffers via gather i/o.
 
Methods inherited from class org.python.core.io.RawIOBase
fileno, read
 
Methods inherited from class org.python.core.io.IOBase
checkClosed, checkReadable, checkWritable, closed, flush, seek
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileIO

public FileIO(String name,
              String mode)
Construct a FileIO instance for the specified file name. The mode can be 'r', 'w' or 'a' for reading (default), writing or appending. Add a '+' to the mode to allow simultaneous reading and writing.

Parameters:
name - the name of the file
mode - a raw io file mode String

FileIO

public FileIO(FileChannel fileChannel,
              String mode)
Construct a FileIO instance with the given FileChannel. The mode can be 'r', 'w' or 'a' for reading (default), writing or appending. Add a '+' to the mode to allow simultaneous reading and writing.

Parameters:
fileChannel - a FileChannel object
mode - a raw io file mode String
Method Detail

isatty

public boolean isatty()
Description copied from class: IOBase
Returns whether this is an 'interactive' stream. Returns False if we don't know.

Overrides:
isatty in class IOBase
Returns:
a boolean, true if an 'interactive' stream

readinto

public int readinto(ByteBuffer buf)
Description copied from class: RawIOBase
Read up to buf.remaining() bytes into buf. Returns number of bytes read (0 for EOF).

Overrides:
readinto in class RawIOBase
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 via scatter i/o.

Overrides:
readinto in class RawIOBase
Parameters:
bufs - an array of ByteBuffers to read bytes into
Returns:
the amount of data read as a long

readall

public ByteBuffer readall()
Read until EOF with one readinto() call. Takes advantage of the fact that the underlying file's size is available.

Overrides:
readall in class RawIOBase
Returns:
a ByteBuffer containing the bytes read

write

public int write(ByteBuffer buf)
Description copied from class: RawIOBase
Write the given ByteBuffer to the IO stream. Returns the number of bytes written, which may be less than buf.remaining().

Overrides:
write in class RawIOBase
Parameters:
buf - a ByteBuffer value
Returns:
the number of bytes written as an int

write

public long write(ByteBuffer[] bufs)
Write bytes from each of the specified ByteBuffers via gather i/o.

Overrides:
write in class RawIOBase
Parameters:
bufs - an array of ByteBuffers
Returns:
the number of bytes written as a long

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 IOBase
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 IOBase
Returns:
a long position value

truncate

public long truncate(long size)
Description copied from class: IOBase
Truncate file to size in bytes. Returns the new size.

Overrides:
truncate in class IOBase
Parameters:
size - a long size to truncate to
Returns:
a long size value the file was truncated to

close

public void close()
Description copied from class: IOBase
Flushes and closes the IO object. This must be idempotent. It should also set a flag for the 'closed' property (see below) to test.

Overrides:
close in class IOBase

asOutputStream

public OutputStream asOutputStream()
Description copied from class: IOBase
Coerce this into an OutputStream if possible, or return null.

Overrides:
asOutputStream in class IOBase

asInputStream

public InputStream asInputStream()
Description copied from class: IOBase
Coerce this into an InputStream if possible, or return null.

Overrides:
asInputStream in class IOBase

readable

public boolean readable()
Description copied from class: IOBase
Return whether this file was opened for reading.

Overrides:
readable in class IOBase
Returns:
true if the file was opened for reading

writable

public boolean writable()
Description copied from class: IOBase
Return whether this file was opened for writing.

Overrides:
writable in class IOBase
Returns:
true if the file was opened for writing

getChannel

public Channel getChannel()
Description copied from class: RawIOBase
Return the underlying Java nio Channel.

Specified by:
getChannel in class RawIOBase
Returns:
the underlying Java nio Channel


Jython homepage