📄 pipedioapp.java
字号:
import java.io.*;
public class PipedIOApp {
public static void main(String[] args){
Thread thread1= new Thread(new PipeOutput("Sender"));
Thread thread2= new Thread(new PipeInput("Receiver"));
thread1.start() ;
thread2.start() ;
}
}
class PipeIO{
static PipedInputStream inputPipe = new PipedInputStream();
static PipedOutputStream outputPipe = new PipedOutputStream();
static{
try{
outputPipe.connect(inputPipe) ;
System.out.println("Pipe connects good!");
}catch(IOException e){
System.out.println("Pipe connects failed!");
}
}
String name;
public PipeIO(String id){
name = id;
}
}
class PipeOutput extends PipeIO implements Runnable{
public PipeOutput(String id){
super(id);
}
public void run(){
String s="This is a test";
try{
for(int i=0;i<s.length() ;i++){
outputPipe.write(s.charAt(i) );
System.out.println(name+" worte: " +s.charAt(i) );
}
outputPipe.write('!');
}catch(IOException e){
System.out.println("IOException in PipeOutput");
}
}
}
class PipeInput extends PipeIO implements Runnable{
public PipeInput(String id){
super(id);
}
public void run(){
boolean eof = false;
try{
while(!eof){
int inChar = inputPipe.read();
if(inChar!=-1){
char ch= (char)inChar;
if(ch == '!'){
eof=true;
}else{
System.out.println(name+" read: " + ch);
}
}
}
}catch(IOException e){
System.out.println("IOException in PipeInput");
}
}
}
运行结果:
Pipe connects good!
Sender worte: T
Sender worte: h
Sender worte: i
Sender worte: s
Sender worte:
Sender worte: i
Sender worte: s
Receiver read: T
Sender worte:
Receiver read: h
Sender worte: a
Receiver read: i
Sender worte:
Receiver read: s
Receiver read:
Sender worte: t
Sender worte: e
Sender worte: s
Sender worte: t
Receiver read: i
Receiver read: s
Receiver read:
Receiver read: a
Receiver read:
Receiver read: t
Receiver read: e
Receiver read: s
Receiver read: t
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -