管道输入输出流
管道输入输出流主要用于线程间的数据传输,传输媒介为内存
import java.io.IOException;
import java.io.PipedReader;
import java.io.PipedWriter;
public class MyThread05 {
public static void main(String[] args) throws IOException {
PipedWriter pipedWriter = new PipedWriter();
PipedReader pipedReader = new PipedReader();
pipedWriter.connect(pipedReader);
Thread printThread = new Thread(new Print(pipedReader), "PrintThread");
printThread.start();
int receive = 0;
try {
while ((receive = System.in.read()) != -1) {
pipedWriter.write(receive);
}
} finally {
pipedWriter.close();
}
}
static class Print implements Runnable {
private PipedReader pipedReader;
public Print(PipedReader pipedReader) {
this.pipedReader = pipedReader;
}
@Override
public void run() {
int receive = 0;
try {
while ((receive = pipedReader.read()) != -1) {
System.out.print((char) receive);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// 控制台输入 hello
// hello
// hello
对于Piped类型的流,必须先进行绑定,即调用connect()方法
。