Package org.apache.commons.io.input
Class QueueInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.commons.io.input.QueueInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class QueueInputStream extends java.io.InputStreamSimple alternative to JDKPipedInputStream; queue input stream provides what's written in queue output stream.To build an instance, use
QueueInputStream.Builder.Example usage:
QueueInputStream inputStream = new QueueInputStream(); QueueOutputStream outputStream = inputStream.newQueueOutputStream(); outputStream.write("hello world".getBytes(UTF_8)); inputStream.read();Unlike JDK
PipedInputStreamandPipedOutputStream, queue input/output streams may be used safely in a single thread or multiple threads. Also, unlike JDK classes, no special meaning is attached to initial or current thread. Instances can be used longer after initial threads exited.Closing a
QueueInputStreamhas no effect. The methods in this class can be called after the stream has been closed without generating anIOException.- Since:
- 2.9.0
- See Also:
QueueInputStream.Builder,QueueOutputStream
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classQueueInputStream.BuilderBuilds a newQueueInputStream.
-
Constructor Summary
Constructors Constructor Description QueueInputStream()Constructs a new instance with no limit to its internal queue size and zero timeout.QueueInputStream(java.util.concurrent.BlockingQueue<java.lang.Integer> blockingQueue)Deprecated.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static QueueInputStream.Builderbuilder()Constructs a newQueueInputStream.Builder.QueueOutputStreamnewQueueOutputStream()Constructs a new QueueOutputStream instance connected to this.intread()Reads and returns a single byte.
-
-
-
Constructor Detail
-
QueueInputStream
public QueueInputStream()
Constructs a new instance with no limit to its internal queue size and zero timeout.
-
QueueInputStream
@Deprecated public QueueInputStream(java.util.concurrent.BlockingQueue<java.lang.Integer> blockingQueue)
Deprecated.Constructs a new instance with given queue and zero timeout.- Parameters:
blockingQueue- backing queue for the stream.
-
-
Method Detail
-
builder
public static QueueInputStream.Builder builder()
Constructs a newQueueInputStream.Builder.- Returns:
- a new
QueueInputStream.Builder. - Since:
- 2.12.0
-
newQueueOutputStream
public QueueOutputStream newQueueOutputStream()
Constructs a new QueueOutputStream instance connected to this. Writes to the output stream will be visible to this input stream.- Returns:
- QueueOutputStream connected to this stream.
-
read
public int read()
Reads and returns a single byte.- Specified by:
readin classjava.io.InputStream- Returns:
- the byte read, or
-1if a timeout occurs before a queue element is available. - Throws:
java.lang.IllegalStateException- if thread is interrupted while waiting.
-
-