package org.fun.io; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; class Send implements Runnable{ private PipedOutputStream output=null; public Send(){ this.output=new PipedOutputStream(); } public PipedOutputStream getPipedOutputStream(){ return this.output; } public void run() { String str="hello world!"; try{ this.output.write(str.getBytes()); }catch(IOException e){ e.printStackTrace(); } try{ this.output.close(); }catch(IOException e){ e.printStackTrace(); } } } class Receive implements Runnable{ private PipedInputStream input=null; public Receive(){ this.input=new PipedInputStream(); } public PipedInputStream getPipedInputStream(){ return this.input; } public void run() { byte[] b=new byte[1024]; int len=0; try { len=this.input.read(b); } catch (IOException e) { e.printStackTrace(); } try { input.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println(new String(b,0,len)); } } public class PipedDemo { public static void main(String[] args) throws IOException { Send send=new Send(); Receive rec=new Receive(); send.getPipedOutputStream().connect(rec.getPipedInputStream()); new Thread(send).start(); new Thread(rec).start(); } }