本帖最后由 1021361407 于 2015-3-17 00:35 编辑
刚刚看毕老师的视频,讲io流,在文本文件读取的代码中有这么一句
- <P>char []buf=new char[3];</P>
- <P>while((num=fr.read(buf))!=-1)</P>
- <P>{</P>
- <P>}</P>
复制代码
这句(num=fr.read(buf))!=-1怎么理解呢?
总是绕不过这个逻辑来,fr.read(buf)对num赋值,然后和-1比较对吧,关键是这个赋值操作,fr.read(buf)返回的是读取的字符数,达到流的末尾则返回-1,那么问题来了,在对文件末尾读取的时候,如果读到最后一个字符的时候fr.read(buf)返回一个int对num赋值然后执行循环体,然后又重新fr.read(buf)返回一个-1,结束循环
这样理解对么? |
|