关于PipedOutputStream的测试小程序import java.io.*;
public class PipedStream {
    public static void main(String [] args){
       try{ 
            Thread sender = new Sender();
            Thread receiver = new Receiver();
            PipedOutputStream out = sender.getOutputStream();  //这里编译不能通过
            PipedInputStream in = receiver.getInputStream();   //这里编译不能通过
            in.connect(out);
            sender.start();
            receiver.start();
        }
       catch(Exception e){
           System.out.println(e.getMessage());
       }
    }
}
class Sender extends Thread{
    private PipedOutputStream po = new PipedOutputStream();
    public PipedOutputStream getOutputStream(){
        return po;
    }
    public void run(){
        String s = "this is the sender ";
        try{
            po.write(s.getBytes());
            po.close();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}
class Receiver extends Thread{
    private PipedInputStream pi = new PipedInputStream();
    public PipedInputStream getInputStream(){
        return pi;
    }
    public void run(){
        String s = null;
        byte [] buf = new byte[1024];
        try{
            int len = pi.read(buf);
            s = new String(buf ,0,len);
            System.out.println("the information from the sender : " + s);
            pi.close();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
    }
}
[size=11px]报错
run:
Uncompilable source code - 不兼容的类型
找到: java.lang.Thread.getOutputStream
需要: java.io.PipedOutputStream
size]

解决方案 »

  1.   


    try{ 
                Thread sender = new Sender();
                Thread receiver = new Receiver();
                PipedOutputStream out = sender.getOutputStream();  //这里编译不能通过
                PipedInputStream in = receiver.getInputStream();   //这里编译不能通过
                in.connect(out);
                sender.start();
                receiver.start();
            }
    Thread类又不包含getOutputStream()和getInputStream()方法,当然编译不能通过,改成:try{ 
                Sender sender = new Sender();
                Receiver receiver = new Receiver();
                PipedOutputStream out = sender.getOutputStream(); 
                PipedInputStream in = receiver.getInputStream();   
                in.connect(out);
                sender.start();
                receiver.start();
            }