class Send implements Runnable{
PipedOutputStream pos = null;
public Send()
{
this.pos = new PipedOutputStream();
}
public PipedOutputStream getPipedOutputStream()
{
return this.pos;
}
@Override
public void run() {
// TODO 自动生成的方法存根
String str = "hello world!!!";
try {
this.pos.write(str.getBytes());
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
try {
this.pos.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
class Receive implements Runnable{
PipedInputStream pis = null;
public Receive(){
this.pis = new PipedInputStream();
}
public PipedInputStream getPipedInputStream()
{
return this.pis;
}
@Override
public void run() {
// TODO 自动生成的方法存根
byte b[] = new byte[1024];
int len = 0;
try {
len = this.pis.read(b);
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
try {
this.pis.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println(new String(b,0,len) );
}
}
public class PipedOutputStreamDemo {
public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
Send send = new Send();
Receive rec = new Receive();
send.getPipedOutputStream().connect(rec.getPipedInputStream());
new Thread(send).start();
new Thread(rec).start();
}
}