A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李靖 中级黑马   /  2012-11-12 09:39  /  1305 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在参看java api时,提到
在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
那么输入可用,和已经到达流的末尾,分别代表那种情况,怎么可用然输入不可用呢?


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

1 个回复

倒序浏览
输入可用:还没有读完,读了一部分了,并且程序也没发生异常死掉。但它并不是一直连续不断的读,他读一会,cpu切换了线程,所以他所在的线程就必须等待cpu资源,所以阻塞着嘛!!

发生I/0异常:read()本来就是调用底层的系统api在读数据,就算我们的程序发生了错误停止了,但还并没有close()我们调用的底层api,所以他并没有destory消亡。君不见我们在IO发生异常后,在finally里还要对他进行close(),有印象了吧!!

至于输入不可用了,你读写入流close()了,也就真不可用了嘛!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马