Reader中的read(char[] cbuf)阻塞问题

PJ_Richard 2016-03-13 03:57:25
①API中,对于Reader中read(char[] cbuf)的说明:
public int read(char[] cbuf)
将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。
“在某个输入可用前,此方法一直阻塞”,这个“某个输入可用”怎么理解哈???
② 还有:
FileReader fr=new FileReader("demo.txt");
int len=o;
char[] buf=new char[1024];
while((len=fr.read(buf))!=-1)
System.out.print(new String(buf,0,len));

将while()去掉,改为:len=fr.read(buf),输出结果是一样的,这两个区别在哪里?
...全文
287 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
th_?? 2016-05-03
  • 打赏
  • 举报
回复
擦,这个没有回复提醒,调用的时候就是Map.Entry,你如果找源码看,Map里面肯定就是Entry而不是你说的Map.Entry
PJ_Richard 2016-03-14
  • 打赏
  • 举报
回复
引用 1 楼 sinat_34201444的回复:
第一个:某个可用的方法应该类似键盘输入这样的方法把,一直等待键盘输入 第二个:你把数组弄小点就能看出差别了,你那个应该是一次就读完了,所以有没有while结果一样
还想问您个问题,Map.Entry 既然是Map中的静态内部接口,那么建立其引用时不应该和内部类一样吗?不该是Map.Map.Entry?
PJ_Richard 2016-03-14
  • 打赏
  • 举报
回复
引用 1 楼 sinat_34201444的回复:
第一个:某个可用的方法应该类似键盘输入这样的方法把,一直等待键盘输入 第二个:你把数组弄小点就能看出差别了,你那个应该是一次就读完了,所以有没有while结果一样
我试了,没有while,当数组小不足以存下时,被读的字符不能完全输出!!!谢谢你了!!
th_?? 2016-03-13
  • 打赏
  • 举报
回复
第一个:某个可用的方法应该类似键盘输入这样的方法把,一直等待键盘输入 第二个:你把数组弄小点就能看出差别了,你那个应该是一次就读完了,所以有没有while结果一样

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧