构造两个线程,通过管道将一个进程读入的文件从另外一个进程中输出到另外一个文件。

解决方案 »

  1.   

    你是想要一个例子吗?我可以给你提供一个,有比较详细解释,别忘了给分,呵呵。
    import java.io.*;public class PipeIODemo1{
    public static void main(String[] args) throws IOException{
    //创建一个管道输出流对象
    PipedWriter out=new PipedWriter();

    //创建一个管道输入流对象
    PipedReader in=new PipedReader();
    //把管道输入流对象和管道输出流对象联接起来
    in.connect(out);

    //以上2个语句等效于
    //PipedReader in=new PipedReader(out);

            OutThread objOut=new OutThread(out);
    InThread objIn=new InThread(in);
    objOut.start();
    objIn.start(); try{
    objOut.join();
    objIn.join();
    }catch (InterruptedException e){}        System.out.println();
    System.out.println("Run Completed!!");
    }
    }
    //定义一个写线程类
    class OutThread extends Thread{
    private Writer out;

    public OutThread(Writer out){
    this.out=out;
    }

    public void run(){
    try{
    try{
    for(char c='A'; c<='Z'; c++)
    out.write(c);
    }finally{
    out.close();
    }
    }catch(IOException e){
    getThreadGroup().uncaughtException(this, e);
    }
    }
    }class InThread extends Thread{
    private Reader in; public InThread(Reader in){
    this.in=in;
    } public void run(){
    int ch;
    try{
    try{
    while ((ch=in.read())!=-1)
    System.out.print((char)ch);
    }finally{
    in.close();
    }
    }catch(IOException e){
    getThreadGroup().uncaughtException(this, e);
    }
    }
    }
      

  2.   

    例如:在第一个线程中,从input.txt文件中读出数据,保存在管道中;在第二个线程中,得到第一线程中管道的数据,并写入output.txt中。