管道流
PipedInputStream
PipedOutputStream
注意:输入流和输出流必须在不同的线程中
1 public class PipedStreamDemo { 2 3 /** 4 * @param args 5 * @throws IOException 6 */ 7 public static void main(String[] args) throws IOException { 8 PipedInputStream input = new PipedInputStream(); 9 PipedOutputStream output = new PipedOutputStream(); 10 11 input.connect(output); 12 new Thread(new Input(input)).start(); 13 new Thread(new Out(output)).start(); 14 15 } 16 } 17 18 class Input implements Runnable { 19 20 private PipedInputStream in; 21 22 public Input(PipedInputStream in) { 23 this.in = in; 24 } 25 26 @Override 27 public void run() { 28 byte[] buf = new byte[1024]; 29 int len; 30 try { 31 len = in.read(buf); 32 String str = new String(buf, 0, len); 33 System.out.println(str); 34 this.in.close(); 35 } catch (IOException e) { 36 37 } 38 39 } 40 41 } 42 43 class Out implements Runnable { 44 45 private PipedOutputStream out; 46 47 Out(PipedOutputStream out) { 48 this.out = out; 49 } 50 51 @Override 52 public void run() { 53 try { 54 out.write("管道流".getBytes()); 55 out.close(); 56 } catch (IOException e) { 57 58 } 59 } 60 61 }