package com.jingcheng.io;
import java.io.*;
public class ReadPipeSteam {
public static void main(String[] args) {
PipedInputStream pis = new PipedInputStream();
PipedOutputStream pos = new PipedOutputStream();
try{
pos.connect(pis);
}catch(Exception e){
e.printStackTrace();
}
Producer producer = new Producer(pos);
Consumer con = new Consumer(pis);
producer.run();
con.run();
}
}
class Producer implements Runnable{
PipedOutputStream pos;
public Producer(PipedOutputStream pos){
this.pos = pos;
}
public void run() {
try{
pos.write("Producer generator .".getBytes());
pos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
class Consumer implements Runnable{
PipedInputStream pis;
public Consumer(PipedInputStream pis){
this.pis = pis;
}
public void run() {
try{
byte[] bytes = new byte[100];
int length = pis.read(bytes);
System.out.println(new String(bytes,0,length));
}catch(Exception e){
e.printStackTrace();
}
}
}
本文通过一个具体的Java程序示例,介绍了如何使用Java中的管道输入流(PipedInputStream)和管道输出流(PipedOutputStream)。该示例展示了如何在两个线程间通过管道流进行数据传递,包括创建流、连接流以及读写操作。
897

被折叠的 条评论
为什么被折叠?



