org.python.core.io

## Class TextIOBase

- java.lang.Object
- - org.python.core.io.IOBase
  - - org.python.core.io.TextIOBase

Direct Known Subclasses:
  BinaryIOWrapper, UniversalIOWrapper

    public abstract class TextIOBase
    extends IOBase

Base class for text I/O. This class provides a character and line based interface to stream I/O.

Author:
  Philip Jenvey

### Field Summary

Fields
`static int` `CHUNK_SIZE` The size of chunks read for readline

### Fields inherited from class org.python.core.io.IOBase

`DEFAULT_BUFFER_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`TextIOBase(BufferedIOBase bufferedIO)` Contruct a TextIOBase wrapping the given BufferedIOBase.

### Method Summary

All Methods Instance Methods Concrete Methods
`java.io.InputStream` `asInputStream()` Coerce this into an InputStream if possible, or return null.
`java.io.OutputStream` `asOutputStream()` Coerce this into an OutputStream if possible, or return null.
`void` `close()` Flushes and closes the IO object.
`boolean` `closed()` Return whether this file has been closed.
`RawIOBase` `fileno()` Returns underlying file descriptor if one exists.
`void` `flush()` Flushes write buffers, if applicable.
`PyObject` `getNewlines()` Return the known Newline types, as a PyObject, encountered while reading this file.
`boolean` `isatty()` Returns whether this is an 'interactive' stream.
`java.lang.String` `read(int size)` Read and return up to size bytes, contained in a String.
`boolean` `readable()` Return whether this file was opened for reading.
`java.lang.String` `readall()` Read until EOF.
`int` `readinto(PyObject buf)` Read into the given PyObject that implements the Jython buffer API (with write access) or is a PyArray.
`java.lang.String` `readline(int size)` Read until size, newline or EOF.
`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 pos)` Truncate file to size in bytes.
`boolean` `writable()` Return whether this file was opened for writing.
`int` `write(java.lang.String buf)` Write the given String to the IO stream.

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

### Field Detail

#### CHUNK_SIZE

    public static final int CHUNK_SIZE

The size of chunks read for readline

See Also:
  Constant Field Values

### Constructor Detail

#### TextIOBase

    public TextIOBase(BufferedIOBase bufferedIO)

Contruct a TextIOBase wrapping the given BufferedIOBase.

Parameters:
  `bufferedIO` - a BufferedIOBase to wrap

### Method Detail

#### read

    public java.lang.String read(int size)

Read and return up to size bytes, contained in a String. Returns an empty String on EOF

Parameters:
  `size` - the number of bytes to read
Returns:
  a String containing the bytes read

#### readall

    public java.lang.String readall()

Read until EOF.

Returns:
  a String containing the bytes read

#### readline

    public java.lang.String readline(int size)

Read until size, newline or EOF. Returns an empty string if EOF is hit immediately.

Parameters:
  `size` - the number of bytes to read
Returns:
  a String containing the bytes read

#### readinto

    public int readinto(PyObject buf)

Read into the given PyObject that implements the Jython buffer API (with write access) or is a PyArray.

Parameters:
  `buf` - a PyObject compatible with the buffer API
Returns:
  the amount of data read as an int

#### write

    public int write(java.lang.String buf)

Write the given String to the IO stream. Returns the number of characters written.

Parameters:
  `buf` - a String value
Returns:
  the number of characters written as an int

#### truncate

    public long truncate(long pos)

Description copied from class: `IOBase`
Truncate file to size in bytes. Returns the new size.

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

#### 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 `IOBase`

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

#### 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

#### 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

#### 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

#### 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

#### closed

    public boolean closed()

Description copied from class: `IOBase`
Return whether this file has been closed.

Overrides:
  `closed` in class `IOBase`
Returns:
  true if the file has been closed

#### asInputStream

    public java.io.InputStream asInputStream()

Description copied from class: `IOBase`
Coerce this into an InputStream if possible, or return null.

Overrides:
  `asInputStream` in class `IOBase`

#### asOutputStream

    public java.io.OutputStream asOutputStream()

Description copied from class: `IOBase`
Coerce this into an OutputStream if possible, or return null.

Overrides:
  `asOutputStream` in class `IOBase`

#### getNewlines

    public PyObject getNewlines()

Return the known Newline types, as a PyObject, encountered while reading this file. Returns None for all modes except universal newline mode.

Returns:
  a PyObject containing all encountered Newlines, or None