public class PipedStreamDemo {
public static void main(String[] args) throws IOException {
PipedOutputStream out = new PipedOutputStream();
PipedInputStream in = new PipedInputStream(out);
Input input = new Input(in);
Output output = new Output(out);
input.start();
output.start();
}
static class Input extends Thread{
PipedInputStream in;
public Input(PipedInputStream in){
this.in = in;
}
public void run() {
byte[] bytes = new byte[1024];
try {
while(true){
//因为read方法是阻塞式的,没数据就等待,有数据立刻就读
int i = in.read(bytes);
String str = new String(bytes,0,i);
System.out.println("接收线程##"+str);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
static class Output extends Thread{
PipedOutputStream out;
public Output(PipedOutputStream out){
this.out = out;
}
public void run() {
try {
while(true){
InputStream is = System.in;
byte[] bytes = new byte[1024];
int len = is.read(bytes);
out.write(new String(bytes,0,len).getBytes());
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
管道流的简单例子
最新推荐文章于 2023-12-26 16:35:35 发布