PipedInputStream是从与其它线程共用的管道中读取数据,PipedOutputStream是向与其它线程共用的管道中写入数据。
例如:进程间通信
package com.awspaas.user.apps.yxt.oa.oajfw; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; public class test { public static void main(String[] args) { send send = new send(); recive recive = new recive(); try { send.getOut().connect(recive.getIn()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } new Thread(send).start(); new Thread(recive).start(); } } /** * 发送消息 * * @author Administrator * */ class send implements Runnable { private PipedOutputStream out = null; public send() { out = new PipedOutputStream(); } public PipedOutputStream getOut() { return this.out; } @Override public void run() { // TODO Auto-generated method stub String messages = "hello world"; try { out.write(messages.getBytes()); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 接受消息 * * @author Administrator * */ class recive implements Runnable { private PipedInputStream in = null; public recive() { in = new PipedInputStream(); } public PipedInputStream getIn() { return this.in; } @Override public void run() { // TODO Auto-generated method stub byte[] by = new byte[1024]; try { in.read(by); in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("读出消息:" + new String(by)); } }