zoukankan      html  css  js  c++  java
  • Java管道流

    管道流的主要作用可以用于两个线程之间的通信,有管道输出流 PipeOutputStream和管道输入流 PipeInputStream。然后通过connect将两个管道连接起来。

    import java.io.PipedInputStream;
    import java.io.PipedOutputStream;
    
    class Send implements Runnable{
    	private PipedOutputStream pos = null;
    	
    	public Send() {
    		// TODO Auto-generated constructor stub
    		pos = new PipedOutputStream();
    	}
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    		String str = "Hello world!";
    		try {
    			pos.write(str.getBytes());
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		
    		try {
    			pos.close();
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    	}
    	
    	public PipedOutputStream getPos() {
    		return pos;
    	}	
    }
    
    class Receive implements Runnable{
    	private PipedInputStream pis = null;
    	
    	public Receive() {
    		// TODO Auto-generated constructor stub
    		pis = new PipedInputStream();
    	}
    	
    	public PipedInputStream getPis() {
    		return pis;
    	}
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    		byte[] b = new byte[1024];
    		int len = 0;
    		try {
    			len = pis.read(b);
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		
    		try {
    			pis.close();
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		
    		System.out.println(new String(b, 0, len));
    	}	
    	
    }
    
    public class PipeDemo01 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Send s = new Send();
    		Receive r = new Receive();
    		try {
    			s.getPos().connect(r.getPis());
    		} catch (Exception e) {
    			// TODO: handle exception
    			e.printStackTrace();
    		}
    		
    		new Thread(s).start();
    		new Thread(r).start();
    	}
    
    }
    

      

  • 相关阅读:
    背包九讲
    hdu 2602 Bone Collector(01背包)
    hdu 1176 免费馅饼(类似于hdu 2084 数塔那道题目 )
    hdu 1114 PiggyBank(完全背包)
    hdu 2084 数塔
    hdu 1058 Humble Numbers【丑数】
    hdu 1114 PiggyBank【完全背包】
    hdu 2602 Bone Collector (01背包经典入门)
    hdu 2602 Bone Collector【01背包】
    【Python】python的各种函数
  • 原文地址:https://www.cnblogs.com/aituming/p/4788103.html
Copyright © 2011-2022 走看看