本帖最后由 Gaara33 于 2014-6-18 21:25 编辑
- import java.io.*;
- class Read implements Runnable
- {
- private PipedInputStream in;
- Read (PipedInputStream in)
- {
- this.in = in;
- }
- public void run()
- {
- try
- {
- byte [] buf = new byte[1024];
- System.out.println("读取前。。没有数据,阻塞");
- int len = in.read(buf);
- System.out.println("读到数据。。阻塞结束");
- String s = new String(buf,0,len);
- System.out.println(s);
- in.close();
- }
- catch (IOException e)
- {
- throw new RuntimeException("管道读取流失败");
- }
- }
- }
- class Write implements Runnable
- {
- private PipedOutputStream out;
- Write(PipedOutputStream out)
- {
- this.out = out;
- }
- public void run()
- {
- try
- {
- System.out.println("开始写入数据,等待6秒。。。");
- Thread.sleep(6000);
- out.write("piped lai la".getBytes());
- out.close();
- }
- catch (Exception e)
- {
- throw new RuntimeException("管道输出流失败");
- }
- }
- }
- class PipedStreamDemo
- {
- public static void main(String[] args) throws IOException
- {
- PipedInputStream in = new PipedInputStream();
- PipedOutputStream out = new PipedOutputStream();
- in.connect(out);
- Read r = new Read(in);
- Write w = new Write(out);
-
- new Thread(r).start();
- new Thread(w).start();
- // in.close();
- // out.close();
- }
- }
复制代码
PipedInputStream
PipedOutputStream
这两个流不是也需要关闭吗,在看视频的时候,没有说要关闭,我试着关闭了一下,就出问题了,求大神指点。。。 |
|