管道流主要作用是可以连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedReader、PipedWriter)两种类型.
一个PipedInputStream 对象必须和一个PipedOutputStream 对象进行连接而产生一个通信管道,PipedOutputStream 可以向管道中写入数据,PipedInputStream 可以从管道中读取 PipedOutputStream 写入的数据。
生产者消费者模式经典应用
demo如下
package com.yudian.io.stream;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;public class PipedSteam { public static void main(String[] args) { PipedInputStream pi = new PipedInputStream(); PipedOutputStream po = new PipedOutputStream(); try { pi.connect(po); po.write("测式".getBytes("utf8")); po.close(); byte[] bytes = new byte[100]; pi.read(bytes); System.out.println(new String(bytes, "utf8")); pi.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
打印结果
测试