import  java.io.*;class  Sender extends Thread{
    private PipedOutputStream  out=new  PipedOutputStream();
    public  PipedOutputStream  getOutputStream(){
        return out;
    }
    public  void run(){
       String  s="hello,receiver,how are you!";
       try{
       out.write(s.getBytes());
       out.close();
      }catch(Exception e){
        System.out.println(e.getMessage());
      }
    }
}class  Receiver  extends  Thread{
   private PipedInputStream  in=new  PipedInputStream();
   public  PipedInputStream  getInputStream(){
      return in;
   }
   public  void run(){
      byte[] buf=new  byte[1024];
      try{
         int len=in.read(buf);
         String s=new String(buf,0,len);  
         System.out.println(s);
         in.close();
      }catch(Exception e){
        System.out.println(e.getMessage());
      }
    }
}public  class  PipeStreamTest{
   public  static  void  main(String[] args){
      try{
      Sender  t1=new  Sender();
      Receiver  t2=new  Receiver();
      PipedOutputStream out=t1.getOutputStream();
      PipedInputStream in=t2.getInputStream();
      out.connect(in);
      t1.start();
      t2.start();
    }catch(Exception e){
      System.out.println(e.getMessage());
    }
   }
}