运行代码,在控制台输入字符点回车会被打印,但是控制台上的字符是如何传入这段逻辑代码的呢,请大神指点!
package basic;
import java.io.IOException;
import java.io.PipedReader;
import java.io.PipedWriter;
public class Piped {
public static void main(String[] args) throws Exception {
PipedWriter out = new PipedWriter();
PipedReader in = new PipedReader();
out.connect(in);
Thread printThread = new Thread(new Print(in), "PrintThread");
printThread.start();
int receive = 0;
try {
while((receive = System.in.read())!=-1) {
out.write(receive);
}
} finally {
out.close();
}
}
static class Print implements Runnable{
private PipedReader in;
public Print(PipedReader in) {
this.in = in;
}
public void run() {
int receive = 0;
try {
while((receive = in.read())!=-1) {
System.out.println((char)receive);
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
}