org.apache.commons.io.output

## Class CloseShieldOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - org.apache.commons.io.output.ProxyOutputStream
      - - org.apache.commons.io.output.CloseShieldOutputStream

- All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable

      public class CloseShieldOutputStream
      extends ProxyOutputStream

  Proxy stream that prevents the underlying output stream from being closed.

  This class is typically used in cases where an output stream needs to be passed to a component that wants to explicitly close the stream even if other components would still use the stream for output.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.commons.io.output.ProxyOutputStream

      `ProxyOutputStream.Builder`

  - ### Field Summary

    - ### Fields inherited from class java.io.FilterOutputStream

      `out`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Replaces the underlying output stream with a `ClosedOutputStream` sentinel.
    `static CloseShieldOutputStream` | `wrap(OutputStream outputStream)` Constructs a proxy that shields the given output stream from being closed.

    - ### Methods inherited from class org.apache.commons.io.output.ProxyOutputStream

      `afterWrite, beforeWrite, flush, handleIOException, setReference, unwrap, write, write, write`

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

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

- - ### Method Detail

    - #### close

          public void close()

      Replaces the underlying output stream with a `ClosedOutputStream` sentinel. The original output stream will remain open, but this proxy will appear closed.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Overrides:
        `close` in class `ProxyOutputStream`

    - #### wrap

          public static CloseShieldOutputStream wrap(OutputStream outputStream)

      Constructs a proxy that shields the given output stream from being closed.
      Parameters:
        `outputStream` - the output stream to wrap
      Returns:
        the created proxy