IO//管道流

雨燕双飞 提交于 2019-12-03 23:44:55

管道流 : PipedInputStream   、 PipedOutputStream

import java.io.*;
import java.util.*;
public class Practice_2 {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub 
        
        PipedInputStream in = new PipedInputStream();
        PipedOutputStream out = new PipedOutputStream();
        in.connect(out);
        
        Read r = new Read(in);
        Write w = new Write(out);
        
        new Thread(r).start();
        new Thread(w).start();
        
    }
    
}
class Read implements Runnable
{
    private PipedInputStream in;
    Read(PipedInputStream in)
    {
        this.in = in;
    }
    public void run()
    {
        try
        {

            byte[] buf = new byte[1024];
            System.out.println("读取前、没有阻塞");
            int len = in.read(buf);
            System.out.println("读取后、阻塞结束");
            String s = new String(buf,0,len);
            
            System.out.println(s);
            
            in.close();
        }
        catch(IOException e)
        {
            System.out.println("管道读取流失败");
        }
    }
}
class Write implements Runnable
{
    private PipedOutputStream out;
    Write(PipedOutputStream out)
    {
        this.out = out;
    }
    public void run()
    {
        try
        {
            System.out.println("正在写入数据、请稍等6秒");
            Thread.sleep(6000);
            out.write("piped lai le".getBytes());
            out.close();
        }
        catch(Exception e)
        {
            throw new RuntimeException("管道输出失败");
        }
    }
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!