org.apache.tools.ant.util

## Class TeeOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - org.apache.tools.ant.util.TeeOutputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

      public class TeeOutputStream
      extends java.io.OutputStream

  A simple T-piece to replicate an output stream into two separate streams

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TeeOutputStream(java.io.OutputStream left, java.io.OutputStream right)` Constructor for TeeOutputStream.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Close both output streams.
    `void` | `flush()` Flush both output streams.
    `void` | `write(byte[] b)` Write a byte array to both output streams.
    `void` | `write(byte[] b, int off, int len)` Write a byte array to both output streams.
    `void` | `write(int b)` Write a byte to both output streams.

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

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

- - ### Constructor Detail

    - #### TeeOutputStream

          public TeeOutputStream(java.io.OutputStream left,
                         java.io.OutputStream right)

      Constructor for TeeOutputStream.
      Parameters:
        `left` - one of the output streams.
        `right` - the other output stream.

  - ### Method Detail

    - #### close

          public void close()
                     throws java.io.IOException

      Close both output streams.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException` - on error.

    - #### flush

          public void flush()
                     throws java.io.IOException

      Flush both output streams.
      Specified by:
        `flush` in interface `java.io.Flushable`
      Overrides:
        `flush` in class `java.io.OutputStream`
      Throws:
        `java.io.IOException` - on error

    - #### write

          public void write(byte[] b)
                     throws java.io.IOException

      Write a byte array to both output streams.
      Overrides:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - an array of bytes.
      Throws:
        `java.io.IOException` - on error.

    - #### write

          public void write(byte[] b,
                   int off,
                   int len)
                     throws java.io.IOException

      Write a byte array to both output streams.
      Overrides:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - the data.
        `off` - the start offset in the data.
        `len` - the number of bytes to write.
      Throws:
        `java.io.IOException` - on error.

    - #### write

          public void write(int b)
                     throws java.io.IOException

      Write a byte to both output streams.
      Specified by:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - the byte to write.
      Throws:
        `java.io.IOException` - on error.