import java.io.*;
public class PipedStreamTest {
/** Creates a new instance of PipedStreamTest */
public static void main(String [] args){
Sender t1 = new Sender();
Receiver t2 = new Receiver();
try{
PipedOutputStream out =t1.getPipedOutputStream();
PipedInputStream in = t2.getPipedInputStream();
in.connect(out);
t1.start();
t2.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
//class Receiver
public class Receiver extends Thread{
/** Creates a new instance of Receiver */
private PipedInputStream in = new PipedInputStream();
byte [] buf = new byte[1024];
int len = 0;
public PipedInputStream getPipedInputStream(){
return in;
}
public void run(){
try{
PipedInputStream in = new PipedInputStream();
len = in.read(buf);
System.out.println("the fllowing content is :" + new String(buf,0,len));
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}//class Sender
public class Sender extends Thread{
/** Creates a new instance of Sender */
private PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getPipedOutputStream(){
return out;
}
public void run(){
try{
PipedOutputStream out = new PipedOutputStream();
out.write("hello,received".getBytes());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public class PipedStreamTest {
/** Creates a new instance of PipedStreamTest */
public static void main(String [] args){
Sender t1 = new Sender();
Receiver t2 = new Receiver();
try{
PipedOutputStream out =t1.getPipedOutputStream();
PipedInputStream in = t2.getPipedInputStream();
in.connect(out);
t1.start();
t2.start();
}catch(Exception e){
e.printStackTrace();
}
}
}
//class Receiver
public class Receiver extends Thread{
/** Creates a new instance of Receiver */
private PipedInputStream in = new PipedInputStream();
byte [] buf = new byte[1024];
int len = 0;
public PipedInputStream getPipedInputStream(){
return in;
}
public void run(){
try{
PipedInputStream in = new PipedInputStream();
len = in.read(buf);
System.out.println("the fllowing content is :" + new String(buf,0,len));
in.close();
}catch(Exception e){
e.printStackTrace();
}
}
}//class Sender
public class Sender extends Thread{
/** Creates a new instance of Sender */
private PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getPipedOutputStream(){
return out;
}
public void run(){
try{
PipedOutputStream out = new PipedOutputStream();
out.write("hello,received".getBytes());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
//class Sender
public class Sender extends Thread{
/** Creates a new instance of Sender */
private PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getPipedOutputStream(){
return out;
}
public void run(){
try{
//谁让你这么写,你这样就覆盖了私有变量out,把下面这行注释掉
//PipedOutputStream out = new PipedOutputStream();
out.write("hello,received".getBytes());
//不要着急关闭,如果那面还没收完,就会有错误啊哥们儿!在外面关闭
//out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
你的PipedInputStream也存在同样问题!!!