org.apache.commons.io.input

## Class CloseShieldInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - org.apache.commons.io.input.ProxyInputStream
      - - org.apache.commons.io.input.CloseShieldInputStream

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class CloseShieldInputStream
      extends ProxyInputStream

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

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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.commons.io.input.ProxyInputStream

      `ProxyInputStream.AbstractBuilder<T,B extends AbstractStreamBuilder<T,B>>`

  - ### Field Summary

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

      `in`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Replaces the underlying input stream with a `ClosedInputStream` sentinel.
    `static InputStream` | `systemIn(InputStream inputStream)` Constructs a proxy that only shields `System.in` from closing.
    `static CloseShieldInputStream` | `wrap(InputStream inputStream)` Constructs a proxy that shields the given input stream from being closed.

    - ### Methods inherited from class org.apache.commons.io.input.ProxyInputStream

      `afterRead, available, beforeRead, checkOpen, handleIOException, isClosed, mark, markSupported, read, read, read, reset, setReference, skip, unwrap`

    - ### 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 input stream with a `ClosedInputStream` sentinel. The original input 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 `ProxyInputStream`

    - #### systemIn

          public static InputStream systemIn(InputStream inputStream)

      Constructs a proxy that only shields `System.in` from closing.
      Parameters:
        `inputStream` - the candidate input stream.
      Returns:
        the given stream or a proxy on `System.in`.

    - #### wrap

          public static CloseShieldInputStream wrap(InputStream inputStream)

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