Package org.python.core.io

## Class StreamIO

- java.lang.Object
- - org.python.core.io.IOBase
  - - org.python.core.io.RawIOBase
    - - org.python.core.io.StreamIO

-     public class StreamIO
      extends RawIOBase

  Raw I/O implementation for simple streams. Supports Input/Outputstreams and Readable/WritableByteChannels.
  Author:
    Philip Jenvey

- - ### Field Summary

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

      `DEFAULT_BUFFER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StreamIO​(java.io.InputStream inputStream, boolean closefd)` | Construct a StreamIO for the given read/write streams.
    `StreamIO​(java.io.OutputStream outputStream, boolean closefd)` | Construct a StreamIO for the given read/write streams.
    `StreamIO​(java.nio.channels.ReadableByteChannel readChannel)` | Construct a StreamIO for the given read channel.
    `StreamIO​(java.nio.channels.ReadableByteChannel readChannel, boolean closefd)` | Construct a StreamIO for the given read channel.
    `StreamIO​(java.nio.channels.WritableByteChannel writeChannel)` | Construct a StreamIO for the given write channel.
    `StreamIO​(java.nio.channels.WritableByteChannel writeChannel, boolean closefd)` | Construct a StreamIO for the given write channel.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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.
    `void` | `flush()` | Flushes write buffers, if applicable.
    `java.nio.channels.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.
    `int` | `readinto​(java.nio.ByteBuffer buf)` | Read up to buf.remaining() bytes into buf.
    `boolean` | `writable()` | Return whether this file was opened for writing.
    `int` | `write​(java.nio.ByteBuffer buf)` | Write the given ByteBuffer to the IO stream.

    - ### Methods inherited from class org.python.core.io.RawIOBase

      `fileno, read, readall, readinto, write`

    - ### Methods inherited from class org.python.core.io.IOBase

      `checkClosed, checkReadable, checkWritable, closed, seek, seek, tell, truncate`

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

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StreamIO

          public StreamIO​(java.nio.channels.ReadableByteChannel readChannel,
                          boolean closefd)

      Construct a StreamIO for the given read channel.
      Parameters:
        `readChannel` - a ReadableByteChannel
        `closefd` - boolean whether the underlying file is closed on close() (defaults to True)

    - #### StreamIO

          public StreamIO​(java.nio.channels.ReadableByteChannel readChannel)

      Construct a StreamIO for the given read channel.
      Parameters:
        `readChannel` - a ReadableByteChannel

    - #### StreamIO

          public StreamIO​(java.nio.channels.WritableByteChannel writeChannel,
                          boolean closefd)

      Construct a StreamIO for the given write channel.
      Parameters:
        `writeChannel` - a WritableByteChannel
        `closefd` - boolean whether the underlying file is closed on close() (defaults to True)

    - #### StreamIO

          public StreamIO​(java.nio.channels.WritableByteChannel writeChannel)

      Construct a StreamIO for the given write channel.
      Parameters:
        `writeChannel` - a WritableByteChannel

    - #### StreamIO

          public StreamIO​(java.io.InputStream inputStream,
                          boolean closefd)

      Construct a StreamIO for the given read/write streams.
      Parameters:
        `inputStream` - an InputStream
        `closefd` - boolean whether the underlying file is closed on close() (defaults to True)

    - #### StreamIO

          public StreamIO​(java.io.OutputStream outputStream,
                          boolean closefd)

      Construct a StreamIO for the given read/write streams.
      Parameters:
        `outputStream` - an OutputStream
        `closefd` - boolean whether the underlying file is closed on close() (defaults to True)

  - ### Method Detail

    - #### readinto

          public int readinto​(java.nio.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

    - #### write

          public int write​(java.nio.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

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

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

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

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

    - #### getChannel

          public java.nio.channels.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