请高手帮我调试一下关于管道的程序!
import java.io.*;
public class TestPipeStream
{
public static void main(String [] args)
{
try
{
Thread t1=new Sender();
Thread t2=new Receiver();
//编译器说下面两行出现了错误,但我不明错在哪里?
PipedOutputStream out=t1.getOutputStream();
PipedInputStream in=t2.getInputStream();
out.connect(in);
t1.start();
t2.start();
}
catch(
IOException e)
{
System.out.println(e.getMessage());
}
}
}
class Sender extends Thread
{
private PipedOutputStream out = new PipedOutputStream();
public PipedOutputStream getOutputStream()
{
return out;
}
public void run()
{
String s=new String( "Hello receiver,how are you ");
try
{
out.write(s.getBytes());
out.close();
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}
}
class Receiver extends Thread
{
private PipedInputStream in = new PipedInputStream();
public PipedInputStream getInputStream()
{
return in;
}
public void run()
{
String s=null;
byte[] buf=new byte[1024];
try
{
int len=in.read(buf);
s=new String(buf,0,len);
System.out.println( "the following message comes from sender:\n "+s);
in.close();
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
}
}
------解决方案--------------------你已经把t1,t2造型成Thread类型了, thread类没有getOutputStream()方法,如果你把t1造型成Sender,t2造型成Receiver就不会有错了
Sender t1 = new Sender();
Receiver t2 = new Receiver();