标签:
管道流的主要作用可以用于两个线程之间的通信,有管道输出流 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(); } }
标签:
原文地址:http://www.cnblogs.com/aituming/p/4788103.html