import java.io.*;public class PipeStreamTest...{ public static void main(String args[]) ...{ PipedOutputStream pos=new PipedOutputStream(); PipedInputStream pis= new PipedInputStream(); try ...{ pos.connect(pis); new Producer(pos).start(); new Cosumer(pis).start(); } catch(IOException e) ...{ e.printStackTrace(); } }} class Producer extends Thread ...{ private PipedOutputStream pos; public Producer(PipedOutputStream pos) ...{ this.pos=pos; } public void run() ...{ try ...{ pos.write("www.163.com".getBytes()); pos.close(); } catch(IOException e) ...{ e.printStackTrace(); } } } class Cosumer extends Thread ...{ private PipedInputStream pis; public Cosumer(PipedInputStream pis) ...{ this.pis=pis; } public void run() ...{ try ...{ byte[] buf=new byte[100]; int len=pis.read(buf); System.out.println(new String(buf,0,len)); pis.close(); } catch(IOException e) ...{ e.printStackTrace(); } } } nJava的I/O库提供了一个称做链接的机制,可以将一个流与另一个流首尾相接,形成一个流管道的链接。这种机制实际上是一种被称为Decorator(装饰)设计模式的应用。 n通过流的链接,可以动态的增加流的功能,而这种功能的增加是通过组合一些流的基本功能而动态获取的。 n我们要获取一个I/O对象,往往需要产生多个I/O对象,这也是Java I/O库不太容易掌握的原因,但在I/O库中Decorator模式的运用,给我们提供了实现上的灵活性