java的管道流要PipedOutputSream和PipedInputStream结合起来使用,管道流主要用来进行线程之间的通信。
上代码
import java.io.*; public class PipeStreamDemo { public static void main(String[] args) { PipedOutputStream out=null; PipedInputStream in=null; Sender sender=new Sender(); Receiver receiver=new Receiver(); out=sender.getOutputStream(); in=receiver.getInputStream(); try { out.connect(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } sender.start(); receiver.start(); } } class Sender extends Thread { private PipedOutputStream out=new PipedOutputStream(); public PipedOutputStream getOutputStream() { return out; } public void run() { String str="Hello, my name is cjc!"; try { out.write(str.getBytes()); out.close(); System.out.println("The sender Thread sends string \""+str+"\"."); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Receiver extends Thread { private PipedInputStream in=new PipedInputStream(); public PipedInputStream getInputStream() { return in; } public void run() { byte[] b=new byte[1024]; try { int num=in.read(b); in.close(); if(num==-1) { System.out.println("The receiver Thread receives nothing!!!"); } else { System.out.println("The receiver Thread receices \""+new String(b,0,num)+"\"."); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
java 管道流PipedOutputStream和PipedInputStream基本操作,布布扣,bubuko.com
时间: 2024-08-06 16:05:28