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 class` | `IO.Verbosity` | Verbosity for simple logging: QUIET, INFO, VERBOSE, DEBUG

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `boolean` | `ansiSupported` | Whether ansi support is available
    `PrintWriter` | `err` | Preferred error output writer.
    `OutputStream` | `errorStream` | Raw error output stream.
    `Reader` | `in` | Preferred input reader.
    `InputStream` | `inputStream` | Raw input stream.
    `PrintWriter` | `out` | Preferred output writer.
    `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

    All Methods Instance Methods Concrete Methods
    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)` |

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

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

- - ### Field Detail

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

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

    - #### tryConstructRenderWriter

          protected PrintWriter tryConstructRenderWriter​(OutputStream stream)

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