Package 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
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.
- Since:
- 1.4
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classConstructs a new builder forCloseShieldInputStream.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 -
Constructor Summary
ConstructorsConstructorDescriptionCloseShieldInputStream(InputStream inputStream) Deprecated.Using this constructor prevents IDEs from warning if the underlying input stream is never closed. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Constructs a new builder forCloseShieldInputStream.voidclose()Applies theonClosefunction to the underlying input stream, replacing it with the result.static InputStreamsystemIn(InputStream inputStream) Constructs a proxy that only shieldsSystem.infrom closing.static CloseShieldInputStreamwrap(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, handleIOException, mark, markSupported, read, read, read, reset, setReference, skip, unwrap
-
Constructor Details
-
CloseShieldInputStream
Deprecated.Using this constructor prevents IDEs from warning if the underlying input stream is never closed. Usewrap(InputStream)instead.Constructs a proxy that shields the given input stream from being closed.- Parameters:
inputStream- underlying input stream.
-
-
Method Details
-
builder
Constructs a new builder forCloseShieldInputStream.- Returns:
- the new builder.
- Since:
- 2.22.0
-
systemIn
Constructs a proxy that only shieldsSystem.infrom closing.- Parameters:
inputStream- the candidate input stream.- Returns:
- the given stream or a proxy on
System.in. - Since:
- 2.17.0
-
wrap
Constructs a proxy that shields the given input stream from being closed.- Parameters:
inputStream- the input stream to wrap.- Returns:
- the created proxy.
- Since:
- 2.9.0
-
close
Applies theonClosefunction to the underlying input stream, replacing it with the result.By default, replaces the underlying input stream with a
ClosedInputStreamsentinel. The original input stream will remain open, but this proxy will appear closed.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classProxyInputStream- Throws:
IOException- Thrown by theonClosefunction.
-