package com.example.iostream; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by guolei on 16-8-5. * ââââââââââââââââââââââââââââââââââââ * | 没æç¥å ½ï¼é£éªä¾æ§ï¼ | * | QQ:1120832563 | * ââââââââââââââââââââââââââââââââââââ */ public class PipeStream { //http://xouou.iteye.com/blog/1333475 public static void main(String[] args){ PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStream(); try { pis.connect(pos); } catch (IOException e) { e.printStackTrace(); } new Thread(new ReadThread(pis)).start(); new Thread(new WriteThread(pos)).start(); } static class ReadThread implements Runnable{ private PipedInputStream pis ; public ReadThread(PipedInputStream pis){ this.pis = pis ; } @Override public void run() { byte[] b = new byte[1024]; try { if (null != pis){ System.err.println(getDate() + " çå¾ å¦ä¸å¤´è¾å ¥æ°æ®"); while (pis.read(b) != -1){ System.err.println(getDate()+ " 读åæå,æ°æ®ä¸º:"+new String(b).trim()); } pis.close(); }else { System.err.println("pis is null"); } } catch (IOException e) { e.printStackTrace(); } } } static class WriteThread implements Runnable{ private PipedOutputStream pos; public WriteThread(PipedOutputStream pos){ this.pos = pos ; } @Override public void run() { byte[] b = new byte[1024]; try { if (null != pos){ Thread.sleep(5000); pos.write("è¿æ¯è¾å ¥çæ°æ®".getBytes("utf-8")); System.err.println(getDate()+" è¾å ¥æ°æ®æå"); pos.close(); } }catch (IOException e){ e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } private static String getDate(){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); return simpleDateFormat.format(new Date().getTime()); } }