1 import java.io.IOException;
2 import java.io.PipedInputStream;
3 import java.io.PipedOutputStream;
4
5 public class PipedInputStreamDemo {
6 public static void main(String[] args) throws IOException{
7 PipedInputStream pis =new PipedInputStream();
8 PipedOutputStream pos =new PipedOutputStream();
9 pis.connect(pos);
10 Reader r =new Reader(pis);
11 Writer w =new Writer(pos);
12 new Thread(r).start();
13 new Thread(w).start();
14 }
15
16 }
17 class Reader implements Runnable{
18 private PipedInputStream pis;
19
20 public Reader(PipedInputStream pis) {
21 super();
22 this.pis = pis;
23 }
24
25 public void run(){
26 byte[] buf =new byte[1024];
27 int ch =0;
28 try {
29 while((ch=pis.read(buf))!=-1){
30 System.out.println(new String(buf,0,ch));
31 }
32 } catch (IOException e) {
33 // TODO Auto-generated catch block
34 e.printStackTrace();
35 }
36 }
37 }
38 class Writer implements Runnable{
39 private PipedOutputStream pos;
40
41 public Writer(PipedOutputStream pos) {
42 super();
43 this.pos = pos;
44 }
45
46 public void run(){
47 try {
48 pos.write("abcdefgh".getBytes());
49 pos.close();
50 } catch (IOException e) {
51 // TODO Auto-generated catch block
52 e.printStackTrace();
53 }
54 }
55 }