JAVA——管道流
2016-06-24 22:00
363 查看
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 le".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(); } }
因为有read方法的存在,没有数据就会阻塞。
结果:
读取前。。。没有数据阻塞
开始写入数据,等待6秒后。。。
读到数据。。。阻塞停止
piped lai le
相关文章推荐
- Java内存区域与内存溢出异常
- java 容器、数组相互转换
- Eclipse很卡很受不了,这个小技巧能帮上忙
- Java web使用第三方插件JFreeChart进行图形开发
- Arquillian+JavaEE+wildfly +eclipse +Maven搭建单元测试基础环境
- Spring MVC
- Struts1(一)——基本原理
- spring mvc controller间跳转 重定向 传参
- UDP协议实现对等通讯Java+RSA加密解密传送信息实现
- Java中的垃圾回收
- Java中List效率的比较
- JAVA——对象的序列化Serializable
- JAVA中this用法小结
- 轻松搞定java内存模型(五)常用命令jps
- Java学习(1)
- ssh整合是Caused by: java.io.FileNotFoundException: class path resource [bean/test/User.hbm.xml] cannot
- java解析XML文件
- 毕向东视频学习笔记【Java_Day10 多态+内部类】
- Java compiler level does not match的解决方法
- SpringIOC容器