管道(Pipe)流是一种特殊的流,用于在不同线程(Thread)间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读取数据。通过使用管道实现不同线程间的通信。
Java提供两个类来处理面向字符的管道:PipedReader和PipedWriter。PipedReader类继承自Reader抽象类,而PipedWriter类继承自Writer抽象类。PipedReader类用于从管道中读取数据,而PipedWriter类用于向管道中写入数据。
利用PipedReader类和PipedWriter类建立面向字符流的管道方法如下:
PipedReader x = new PipedReader();
PipedWriter y = new PipedWriter(x);
或者,
PipedWriter y = new PipedWriter();
PipedReader x = new PipedReader(y);
这样就可以通过y.write( )把数据写入管道,通过x.read( )读取管道的数据。PipedReader类和PipedWriter类还提供一个方法connect( )用于连接管道。例如:
PipedReader x = new PipedReader();
PipedWriter y = new PipedWriter();
y.connect(x);
这和上面两个例子的效果是一样的。