Java 为什么我不能让pipedinput/outputstreams工作
我正在努力为自己弄清楚PipedInputStream和PipedOutStream是如何协同工作的。到目前为止,结果是彻底失败 这是我的代码:Java 为什么我不能让pipedinput/outputstreams工作,java,io,Java,Io,我正在努力为自己弄清楚PipedInputStream和PipedOutStream是如何协同工作的。到目前为止,结果是彻底失败 这是我的代码: import java.io.*; public class Test implements Runnable { private PipedOutputStream pause_breaker; private PipedInputStream pause_breaker_listener; private BufferedReade
import java.io.*;
public class Test implements Runnable {
private PipedOutputStream pause_breaker;
private PipedInputStream pause_breaker_listener;
private BufferedReader br;
private PrintWriter pw;
public void run() {
try {
while(true) {
System.out.println("Now listening...");
String text = br.readLine();
System.out.println("...got " + text);
}
} catch(Exception e) {
System.out.println("run: " + e.getMessage());
}
}
public void pause_test() {
try {
// testing piped streams as pausing tool
pause_breaker = new PipedOutputStream();
pause_breaker_listener = new PipedInputStream();
pause_breaker_listener.connect(pause_breaker);
//pause_breaker.connect(pause_breaker_listener);
br = new BufferedReader(new InputStreamReader(pause_breaker_listener));
pw = new PrintWriter(pause_breaker);
Thread.sleep(1000);
new Thread(this).start();
System.out.println("Waiting for new Thread...");
//Thread.sleep(1000);
System.out.println("Writing to stream...");
pw.write("Test");
pw.flush();
} catch(Exception e) {
System.out.println("pause_test: " + e.getMessage());
}
}
public static void main(String[] args) {
Test t2 = new Test();
t2.pause_test();
}
}
输出如下:
$ java Test
Waiting for new Thread...
Writing to stream...
Now listening...
run: Write end dead
似乎什么也没有发生。有人能告诉我为什么吗
/dr_xemacs您有两个问题:
IOException:pipe break
pw.println(“测试”)
因为读线需要换行。