用多线程间的通信PipedInputStream从管道中读取数据,PipedOutputStream向管道中输出数据,PipedInputStream用于从管道中读取写入的数据。它们两个进行通信要进行绑定。
package hanghao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.io.PrintStream;
/*
* 从键盘读取一行数据并输出到控制台
*/
public class Hanghao {
public static void main(String args[]) throws Exception{
final PipedInputStream pis=new PipedInputStream();
final PipedOutputStream pos=new PipedOutputStream();
pis.connect(pos);
new Thread(new Runnable(){
public void run(){
BufferedReader br=new BufferedReader(
new InputStreamReader(System.in));
PrintStream ps=new PrintStream(pos);
while(true){
try{
System.out.print(Thread.currentThread()
.getName()+"要求输入内容:");
ps.println(br.readLine());
Thread.sleep(1000);
}catch(Exception e){
e.printStackTrace();
}
}
}
},"发送数据的线程").start();
new Thread(new Runnable(){
public void run(){
BufferedReader br=new BufferedReader(new InputStreamReader
(pis));
while(true){
try{
System.out.println(Thread.currentThread().getName()
+"收到的内容:"+br.readLine());
}catch(IOException e){
e.printStackTrace();
}
}
}
},"接收数据的线程").start();
}
}