PyFileIO (Jython API documentation)
Date: 2024-08-18

org.python.modules._io

## Class PyFileIO

- java.lang.Object
- - org.python.core.PyObject
  - - org.python.modules._io.PyIOBase
    - - org.python.modules._io.PyRawIOBase
      - - org.python.modules._io.PyFileIO

- All Implemented Interfaces:
    java.io.Serializable, FinalizableBuiltin, Traverseproc
  Direct Known Subclasses:
    PyFileIODerived

      public class PyFileIO
      extends PyRawIOBase

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.python.core.PyObject

      `PyObject.ConversionException`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `boolean` | `closefd` Whether to close the underlying stream on closing this object.
    `PyString` | `mode` The mode as a PyString based on readable and writable
    `static PyType` | `TYPE`

    - ### Fields inherited from class org.python.modules._io.PyRawIOBase

      `read_doc, readall_doc, readinto_doc, write_doc`

    - ### Fields inherited from class org.python.modules._io.PyIOBase

      `close_doc, closed_doc, fileno_doc, flush_doc, isatty_doc, readable_doc, readline_doc, readlines_doc, seek_doc, seekable_doc, tell_doc, truncate_doc, writable_doc, writelines_doc`

    - ### Fields inherited from class org.python.core.PyObject

      `gcMonitorGlobal`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PyFileIO(PyObject file, OpenMode mode, boolean closefd)` Construct an open `_io.FileIO` starting with an object that may be a file name or a file descriptor (actually a `RawIOBase`).
    `PyFileIO(PyType subtype, PyObject file, OpenMode mode, boolean closefd)` Construct an open `_io.FileIO` for a sub-class constructor starting with an object that may be a file name or a file descriptor (actually a `RawIOBase`).

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close the underlying ioDelegate only if `closefd` was specified as (or defaulted to) `True`.
    `PyObject` | `fileno()` Return a file descriptor for the stream.
    `void` | `flush()` Flush write buffers, or no-op for read-only and non-blocking streams.
    `boolean` | `isatty()` Is the stream known to be an interactive console?
    `void` | `mode_readonly(PyString value)`
    `boolean` | `readable()` Is the stream readable?
    `PyObject` | `readinto(PyObject buf)` Read up to `len(b)` bytes into `bytearray b` and return the number of bytes read.
    `long` | `seek(long pos, int whence)` Position the read or write pointer at a given byte offset `pos` relative to a position indicated by `whence`.
    `boolean` | `seekable()` Is the stream capable of positioning the read/write pointer?
    `java.lang.String` | `toString()`
    `long` | `truncate()` Truncate file to `size` bytes to the current position (as reported by `tell()`).
    `long` | `truncate(long size)` Truncate file to `size` bytes.
    `boolean` | `writable()` Is the stream writable?
    `PyObject` | `write(PyObject buf)` Write the given bytes or bytearray object to the underlying raw stream and return the number of bytes written.

    - ### Methods inherited from class org.python.modules._io.PyRawIOBase

      `read, readall`

    - ### Methods inherited from class org.python.modules._io.PyIOBase

      `__del_builtin__, __enter__, __exit__, __iter__, __iternext__, _checkClosed, _checkClosed, _checkReadable, _checkReadable, _checkSeekable, _checkSeekable, _checkWritable, _checkWritable, closed_readonly, closed, fastGetDict, next, readline, readline, readlines, refersDirectlyTo, seek, tell, traverse, writelines`

    - ### Methods inherited from class org.python.core.PyObject

      `__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delattr__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __findattr_ex__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __ge__, __get__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __gt__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __itruediv__, __ixor__, __le__, __len__, __long__, __lshift__, __lt__, __mod__, __mul__, __ne__, __neg__, __nonzero__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setattr__, __setitem__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __tojava__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, getDict, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, isMappingType, isNumberType, isSequenceType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### TYPE

          public static final PyType TYPE

    - #### closefd

          public final boolean closefd

      Whether to close the underlying stream on closing this object.

    - #### mode

          public final PyString mode

      The mode as a PyString based on readable and writable

  - ### Constructor Detail

    - #### PyFileIO

          public PyFileIO(PyObject file,
                          OpenMode mode,
                          boolean closefd)

      Construct an open `_io.FileIO` starting with an object that may be a file name or a file descriptor (actually a `RawIOBase`). Only the relevant flags within the parsed mode object are consulted (so that flags meaningful to this sub-class need not be processed out).
      Parameters:
        `file` - path or descriptor on which this should be constructed
        `mode` - type of access specified
        `closefd` - if `false`, do not close `fd` on call to `close()`

    - #### PyFileIO

          public PyFileIO(PyType subtype,
                          PyObject file,
                          OpenMode mode,
                          boolean closefd)

      Construct an open `_io.FileIO` for a sub-class constructor starting with an object that may be a file name or a file descriptor (actually a `RawIOBase`). Only the relevant flags within the parsed mode object are consulted (so that flags meaningful to this sub-class need not be processed out).
      Parameters:
        `subtype` - for which construction is occurring
        `file` - path or descriptor on which this should be constructed
        `mode` - type of access specified
        `closefd` - if `false`, do not close `file` on call to `close()`

  - ### Method Detail

    - #### mode_readonly

          public final void mode_readonly(PyString value)

    - #### readinto

          public PyObject readinto(PyObject buf)

      Description copied from class: `PyRawIOBase`
      Read up to `len(b)` bytes into `bytearray b` and return the number of bytes read. If the object is in non-blocking mode and no bytes are available, `None` is returned.";
      Overrides:
        `readinto` in class `PyRawIOBase`
      Parameters:
        `buf` - byte array to try to fill
      Returns:
        number of bytes actually read or `Py.None` (when a non-blocking source is not ready with further data)

    - #### write

          public PyObject write(PyObject buf)

      Description copied from class: `PyRawIOBase`
      Write the given bytes or bytearray object to the underlying raw stream and return the number of bytes written.
      Overrides:
        `write` in class `PyRawIOBase`
      Parameters:
        `buf` - buffer of bytes to be written
      Returns:
        the number of bytes written

    - #### seek

          public long seek(long pos,
                           int whence)

      Description copied from class: `PyIOBase`
      Position the read or write pointer at a given byte offset `pos` relative to a position indicated by `whence`.
      - If `whence`=0, the position will be set to `pos` bytes.
      - If `whence`=1 the position will be set to the current position plus `pos`.
      - If `whence`=2 the position will be set to the stream size plus `pos` (and usually `pos`<=0).
      Overrides:
        `seek` in class `PyIOBase`
      Parameters:
        `pos` - relative to the specified point
        `whence` - 0=from start, 1=from here, 2=from end
      Returns:
        the new current position

    - #### truncate

          public long truncate()

      Description copied from class: `PyIOBase`
      Truncate file to `size` bytes to the current position (as reported by `tell()`).
      Overrides:
        `truncate` in class `PyIOBase`
      Returns:
        the new size

    - #### truncate

          public long truncate(long size)

      Description copied from class: `PyIOBase`
      Truncate file to `size` bytes.
      Overrides:
        `truncate` in class `PyIOBase`
      Parameters:
        `size` - requested for stream
      Returns:
        the new size

    - #### close

          public void close()

      Close the underlying ioDelegate only if `closefd` was specified as (or defaulted to) `True`.
      Overrides:
        `close` in class `PyIOBase`

    - #### seekable

          public boolean seekable()

      Description copied from class: `PyIOBase`
      Is the stream capable of positioning the read/write pointer?
      Overrides:
        `seekable` in class `PyIOBase`
      Returns:
        `True` if may be positioned

    - #### readable

          public boolean readable()
                           throws PyException

      Description copied from class: `PyIOBase`
      Is the stream readable?
      Overrides:
        `readable` in class `PyIOBase`
      Returns:
        `true` if readable
      Throws:
        `PyException` - `ValueError` if the object is closed to client operations

    - #### writable

          public boolean writable()
                           throws PyException

      Description copied from class: `PyIOBase`
      Is the stream writable?
      Overrides:
        `writable` in class `PyIOBase`
      Returns:
        `true` if writable
      Throws:
        `PyException` - `ValueError` if the object is closed to client operations

    - #### fileno

          public PyObject fileno()

      Description copied from class: `PyIOBase`
      Return a file descriptor for the stream. A CPython file descriptor is an int, but this is not the natural choice in Jython, since Java has no such convention of using integers. File descriptors should be passed around opaquely, so their actual type is irrelevant, as long as (say) `_jyio.open(PyObject[], String[])` accepts the type that `RawIOBase.fileno()` returns.
      Overrides:
        `fileno` in class `PyIOBase`
      Returns:
        a file descriptor (as opaque object)

    - #### isatty

          public boolean isatty()

      Description copied from class: `PyIOBase`
      Is the stream known to be an interactive console? This relies on the ability of the underlying stream to know, which is not always possible.
      Overrides:
        `isatty` in class `PyIOBase`
      Returns:
        `true` if a console: `false` if not or we can't tell

    - #### flush

          public void flush()

      Description copied from class: `PyIOBase`
      Flush write buffers, or no-op for read-only and non-blocking streams. Irrespective of the concrete type of the i/o object, locally-buffered write data is written downstream. Whether the downstream in object is also flushed depends upon the specific type of this object.
      Overrides:
        `flush` in class `PyIOBase`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `PyObject`

Jython homepage