Package org.codehaus.groovy.tools.shell

# Class IO

java.lang.Object
org.codehaus.groovy.tools.shell.IO

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class IO extends Object implements Closeable
Container for input/output handles.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `IO.Verbosity`
  Verbosity for simple logging: QUIET, INFO, VERBOSE, DEBUG

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final boolean`
  `ansiSupported`
  Whether ansi support is available
  `final PrintWriter`
  `err`
  Preferred error output writer.
  `final OutputStream`
  `errorStream`
  Raw error output stream.
  `final Reader`
  `in`
  Preferred input reader.
  `final InputStream`
  `inputStream`
  Raw input stream.
  `final PrintWriter`
  `out`
  Preferred output writer.
  `final OutputStream`
  `outputStream`
  Raw output stream.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IO()`
  Construct a new IO container using system streams.
  `IO(InputStream inputStream, OutputStream outputStream, OutputStream errorStream)`
  Construct a new IO container.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close all streams.
  `void`
  `flush()`
  Flush both output streams.
  `IO.Verbosity`
  `getVerbosity()`
  Returns the verbosity level.
  `boolean`
  `isDebug()`
  Check if the verbosity level is set to `IO.Verbosity.DEBUG`.
  `boolean`
  `isInfo()`
  Check if the verbosity level is set to `IO.Verbosity.INFO`.
  `boolean`
  `isQuiet()`
  Check if the verbosity level is set to `IO.Verbosity.QUIET`.
  `boolean`
  `isVerbose()`
  Check if the verbosity level is set to `IO.Verbosity.VERBOSE`.
  `void`
  `setVerbosity(IO.Verbosity verbosity)`
  Set the verbosity level.
  `protected PrintWriter`
  `tryConstructRenderWriter(OutputStream stream)`
  Attempts to create an ANSI-aware writer for the supplied stream.

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

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

- ## Field Details

  - ### inputStream

    public final InputStream inputStream
    Raw input stream.

  - ### outputStream

    public final OutputStream outputStream
    Raw output stream.

  - ### errorStream

    public final OutputStream errorStream
    Raw error output stream.

  - ### in

    public final Reader in
    Preferred input reader.

  - ### out

    public final PrintWriter out
    Preferred output writer.

  - ### err

    public final PrintWriter err
    Preferred error output writer.

  - ### ansiSupported

    public final boolean ansiSupported
    Whether ansi support is available

- ## Constructor Details

  - ### IO

    public IO(InputStream inputStream, OutputStream outputStream, OutputStream errorStream)
    Construct a new IO container.

  - ### IO

    public IO()
    Construct a new IO container using system streams.

- ## Method Details

  - ### tryConstructRenderWriter

    protected PrintWriter tryConstructRenderWriter(OutputStream stream)
    Attempts to create an ANSI-aware writer for the supplied stream.
    Parameters:
      `stream` - the output stream to wrap
    Returns:
      an ANSI render writer, or `null` if ANSI support is unavailable

  - ### setVerbosity

    public void setVerbosity(IO.Verbosity verbosity)
    Set the verbosity level.

  - ### getVerbosity

    public IO.Verbosity getVerbosity()
    Returns the verbosity level.

  - ### isQuiet

    public boolean isQuiet()
    Check if the verbosity level is set to `IO.Verbosity.QUIET`.

  - ### isInfo

    public boolean isInfo()
    Check if the verbosity level is set to `IO.Verbosity.INFO`.

  - ### isVerbose

    public boolean isVerbose()
    Check if the verbosity level is set to `IO.Verbosity.VERBOSE`.

  - ### isDebug

    public boolean isDebug()
    Check if the verbosity level is set to `IO.Verbosity.DEBUG`.

    For general usage, when debug output is required, it is better to use the logging facility instead.

  - ### flush

    public void flush()
    Flush both output streams.

  - ### close

    public void close() throws IOException
    Close all streams.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Throws:
      `IOException`