Package org.apache.commons.io.input
Class ThrottledInputStream.Builder
java.lang.Object
org.apache.commons.io.build.AbstractSupplier<ThrottledInputStream,ThrottledInputStream.Builder>
org.apache.commons.io.build.AbstractOriginSupplier<ThrottledInputStream,ThrottledInputStream.Builder>
org.apache.commons.io.build.AbstractStreamBuilder<ThrottledInputStream,ThrottledInputStream.Builder>
org.apache.commons.io.input.ProxyInputStream.AbstractBuilder<ThrottledInputStream,ThrottledInputStream.Builder>
org.apache.commons.io.input.ThrottledInputStream.Builder
- All Implemented Interfaces:
IOSupplier<ThrottledInputStream>
- Enclosing class:
ThrottledInputStream
public static class ThrottledInputStream.Builder
extends ProxyInputStream.AbstractBuilder<ThrottledInputStream,ThrottledInputStream.Builder>
Builds a new Using NIO
Using IO
ThrottledInputStream
.
Using NIO 
ThrottledInputStream in = ThrottledInputStream.builder()
.setPath(Paths.get("MyFile.xml"))
.setMaxBytes(100_000, ChronoUnit.SECONDS)
.get();
Using IO 
ThrottledInputStream in = ThrottledInputStream.builder()
.setFile(new File("MyFile.xml"))
.setMaxBytes(100_000, ChronoUnit.SECONDS)
.get();
ThrottledInputStream in = ThrottledInputStream.builder()
.setInputStream(inputStream)
.setMaxBytes(100_000, ChronoUnit.SECONDS)
.get();
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionget()
Builds a newThrottledInputStream
.setMaxBytes
(long value, ChronoUnit chronoUnit) Sets the maximum bytes per time period unit.void
setMaxBytesPerSecond
(long maxBytesPerSecond) Sets the maximum bytes per second.Methods inherited from class org.apache.commons.io.input.ProxyInputStream.AbstractBuilder
getAfterRead, setAfterRead
Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder
getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, 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, newRandomAccessFileOrigin, newRandomAccessFileOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, 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, getUnchecked
-
Constructor Details
-
Builder
public Builder()Constructs a new builder ofThrottledInputStream
.
-
-
Method Details
-
get
Builds a newThrottledInputStream
.You must set an aspect that supports
AbstractStreamBuilder.getInputStream()
, otherwise, this method throws an exception.This builder uses the following aspects:
AbstractStreamBuilder.getInputStream()
gets the target aspect.- maxBytesPerSecond
- 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 converting to anInputStream
usingAbstractStreamBuilder.getInputStream()
.- See Also:
-
setMaxBytes
Sets the maximum bytes per time period unit.For example, to throttle reading to 100K per second, use:
builder.setMaxBytes(100_000, ChronoUnit.SECONDS)
To test idle timeouts for example, use 1 byte per minute, 1 byte per 30 seconds, and so on.
- Parameters:
value
- the maximum byteschronoUnit
- a duration scale goal.- Returns:
- this instance.
- Throws:
IllegalArgumentException
- Thrown if maxBytesPerSecond <= 0.- Since:
- 2.19.0
-
setMaxBytesPerSecond
Sets the maximum bytes per second.- Parameters:
maxBytesPerSecond
- the maximum bytes per second.- Throws:
IllegalArgumentException
- Thrown if maxBytesPerSecond <= 0.
-