Class BoundedInputStream.Builder
- All Implemented Interfaces:
IOSupplier<BoundedInputStream>
- Enclosing class:
BoundedInputStream
BoundedInputStream
.
By default, a BoundedInputStream
is unbound; so make sure to call BoundedInputStream.AbstractBuilder.setMaxCount(long)
.
You can find out how many bytes this stream has seen so far by calling BoundedInputStream.getCount()
. This value reflects bytes read and skipped.
Using a ServletInputStream
A ServletInputStream
can block if you try to read content that isn't there
because it doesn't know whether the content hasn't arrived yet or whether the content has finished. Initialize an BoundedInputStream
with the
Content-Length
sent in the ServletInputStream
's header, this stop it from blocking, providing it's been sent with a correct content
length in the first place.
Using NIO
BoundedInputStream s = BoundedInputStream.builder()
.setPath(Paths.get("MyFile.xml"))
.setMaxCount(1024)
.setPropagateClose(false)
.get();
Using IO
BoundedInputStream s = BoundedInputStream.builder()
.setFile(new File("MyFile.xml"))
.setMaxCount(1024)
.setPropagateClose(false)
.get();
Counting Bytes
You can set the running count when building, which is most useful when starting from another stream:
InputStream in = ...;
BoundedInputStream s = BoundedInputStream.builder()
.setInputStream(in)
.setCount(12)
.setMaxCount(1024)
.setPropagateClose(false)
.get();
- Since:
- 2.16.0
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class org.apache.commons.io.input.BoundedInputStream.AbstractBuilder
getCount, getMaxCount, isPropagateClose, setCount, setMaxCount, setPropagateClose
Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder
getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getInputStream, getOpenOptions, getOutputStream, getPath, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharset, setCharset, setCharsetDefault, setOpenOptions
Methods inherited from class org.apache.commons.io.build.AbstractOriginSupplier
checkOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setReader, setURI, setWriter
Methods inherited from class org.apache.commons.io.build.AbstractSupplier
asThis
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.commons.io.function.IOSupplier
asSupplier
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
get
Builds a newBoundedInputStream
.You must set input that supports
AbstractStreamBuilder.getInputStream()
, otherwise, this method throws an exception.This builder use the following aspects:
AbstractStreamBuilder.getInputStream()
- maxCount
- propagateClose
- Returns:
- a new instance.
- Throws:
IllegalStateException
- if theorigin
isnull
.UnsupportedOperationException
- if the origin cannot be converted to anInputStream
.IOException
- if an I/O error occurs.- See Also:
-