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();
    	}
    
    }
    

      

  • 相关阅读:
    openresty
    ATS 相关
    pandas
    flask
    ansible
    zipline
    bcolz
    数据分析 --- concat
    Go --- 基础使用
    Go --- 基础介绍
  • 原文地址:https://www.cnblogs.com/aituming/p/4788103.html
Copyright © 2011-2022 走看看