? QueueInputStream

java.lang.Object
java.io.InputStream
org.apache.commons.io.input.QueueInputStream
????????:
Closeable, AutoCloseable

public class QueueInputStream extends InputStream
Simple alternative to JDK PipedInputStream; queue input stream provides what's written in queue output stream.

Example usage:

 QueueInputStream inputStream = new QueueInputStream();
 QueueOutputStream outputStream = inputStream.newQueueOutputStream();

 outputStream.write("hello world".getBytes(UTF_8));
 inputStream.read();
 

Unlike JDK PipedInputStream and PipedOutputStream, 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 QueueInputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.

???????:
2.9.0
????:
  • ???????

    • QueueInputStream

      Constructs a new instance with no limit to its internal buffer size.
    • QueueInputStream

      public QueueInputStream(BlockingQueue<Integer> blockingQueue)
      Constructs a new instance with given buffer
      ??:
      blockingQueue - backing queue for the stream
  • ??????

    • newQueueOutputStream

      Creates a new QueueOutputStream instance connected to this. Writes to the output stream will be visible to this input stream.
      ??:
      QueueOutputStream connected to this stream
    • read

      public int read()
      Reads and returns a single byte.
      ???:
      read ??? InputStream
      ??:
      either the byte read or -1 if the end of the stream has been reached