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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionget()Builds a newBoundedInputStream.setCount(long count) Sets the current number of bytes counted.setMaxCount(long maxCount) Sets the maximum number of bytes to return.setOnMaxCount(IOBiConsumer<Long, Long> onMaxCount) Sets the defaultBoundedInputStream.onMaxLength(long, long)behavior,nullresets to a NOOP.setPropagateClose(boolean propagateClose) Sets whether theProxyInputStream.close()method should propagate to the underlingInputStream.Methods inherited from class org.apache.commons.io.input.ProxyInputStream.AbstractBuildergetAfterRead, setAfterReadMethods inherited from class org.apache.commons.io.build.AbstractStreamBuildergetBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharset, setCharset, setCharsetDefault, setOpenOptionsMethods inherited from class org.apache.commons.io.build.AbstractOriginSuppliercheckOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newRandomAccessFileOrigin, newRandomAccessFileOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, setReader, setURI, setWriterMethods inherited from class org.apache.commons.io.build.AbstractSupplierasThisMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.commons.io.function.IOSupplierasSupplier, getUnchecked
- 
Constructor Details- 
Builderpublic Builder()Constructs a new builder ofBoundedInputStream.
 
- 
- 
Method Details- 
getBuilds a newBoundedInputStream.You must set an aspect that supports AbstractStreamBuilder.getInputStream(), otherwise, this method throws an exception.If you start from an input stream, an exception can't be thrown, and you can call IOSupplier.getUnchecked()instead.This builder uses the following aspects: - Returns:
- a new instance.
- Throws:
- IllegalStateException- if the- originis- null.
- UnsupportedOperationException- if the origin cannot be converted to an- InputStream.
- IOException- if an I/O error occurs converting to an- InputStreamusing- AbstractStreamBuilder.getInputStream().
- See Also:
 
- 
setCountSets the current number of bytes counted.Useful when building from another stream to carry forward a read count. Default is 0, negative means 0.- Parameters:
- count- The current number of bytes counted.
- Returns:
- thisinstance.
 
- 
setMaxCountSets the maximum number of bytes to return.Default is -1, negative means unbound. - Parameters:
- maxCount- The maximum number of bytes to return, negative means unbound.
- Returns:
- thisinstance.
 
- 
setOnMaxCountSets the defaultBoundedInputStream.onMaxLength(long, long)behavior,nullresets to a NOOP.The first Long is the max count of bytes to read. The second Long is the count of bytes read. This does not override a BoundedInputStreamsubclass' implementation of theBoundedInputStream.onMaxLength(long, long)method.- Parameters:
- onMaxCount- the- ProxyInputStream.afterRead(int)behavior.
- Returns:
- this instance.
- Since:
- 2.18.0
 
- 
setPropagateCloseSets whether theProxyInputStream.close()method should propagate to the underlingInputStream.Default is true.- Parameters:
- propagateClose-- trueif calling- ProxyInputStream.close()propagates to the- close()method of the underlying stream or- falseif it does not.
- Returns:
- thisinstance.
 
 
-