黑马程序员技术交流社区

标题: read方法 [打印本页]

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



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

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

至于输入不可用了,你读写入流close()了,也就真不可用了嘛!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2