Package org.python.core.io

# Class FileIO

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

Constructors
Constructor
Description
`FileIO(String name, String mode)`
`FileIO(FileChannel fileChannel, String mode)`
Construct a FileIO instance with the given FileChannel.
`FileIO(PyString name, String mode)`
Construct a FileIO instance for the specified file name, which will be decoded using the nominal Jython file system encoding if it is a `str/bytes` rather than a `unicode`.

## Method Summary

Modifier and Type
Method
Description
`PyObject`
`__add__(PyObject otherObj)`
`PyObject`
`__int__()`
`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.
`FileChannel`
`getChannel()`
Return the underlying Java nio Channel.
`FileDescriptor`
`getFD()`
`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`.
`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 Details

### FileIO

public FileIO(String name, String mode)

See Also:
  - `FileIO(PyString name, String mode)`

### FileIO

public FileIO(PyString name, String mode)
Construct a FileIO instance for the specified file name, which will be decoded using the nominal Jython file system encoding if it is a `str/bytes` rather than a `unicode`. 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 Details

### 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. Returns number of bytes read (0 for EOF).

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. However, we have to special case if file size is 0, as seen in the /proc virtual file system - in this case we cannot assume the file is truly empty.

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`.

Semantics
`whence` | Seek to | `pos`
--- | --- | ---
0 | Start of stream (the default). | Should be ≥0.
1 | Current position + `pos` | Either sign.
2 | End of stream + `pos` | Usually ≤0.

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 FileChannel getChannel()
Description copied from class: `RawIOBase`
Return the underlying Java nio Channel.

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

### getFD

public FileDescriptor getFD()

### __int__

public PyObject __int__()

### __add__

public PyObject __add__(PyObject otherObj)