JAVA关于read(char[])方法读取文本内容的问题

代码如下:假设文本内容为abcdeFileReaderfr=newFileReader("demo.txt")intlen=0;char[]buf=newchar[102... 代码如下:
假设文本内容为abcde
FileReader fr = new FileReader("demo.txt")
int len = 0;
char[] buf = new char[1024]
while((len=fr.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
这里while循环判断条件里面(len=fr.read(buf))!=-1具体执行步骤是怎样的?
当len值不为-1时,会执行输出语句吗?当len值为-1时,还会执行输出语句吗?
展开
 我来答
随风的鱼儿漂流
推荐于2017-11-22 · TA获得超过617个赞
知道小有建树答主
回答量:123
采纳率:75%
帮助的人:59.1万
展开全部
我们就以内容是abcde为例:你设置的buf长度是1024,因此每次从文件中读取1024个字符。
第一次读取,fr.read(buf),因为文件中就5个字符,全被读到了buf中,此时len=5,执行循环体中的语句,输出abcde;然后程序继续执行;
第二次读取,fr.read(buf),由于文件中的数据第一次已经读完,因此此时返回值为-1,跳出循环。
所以最后输出abcde.
SxxJava
2016-05-23 · 超过31用户采纳过TA的回答
知道答主
回答量:143
采纳率:100%
帮助的人:51.5万
展开全部
这里你得解开来分析
首先len=fr.read(buf),这一句是FileReader读内容到字符缓冲区,同时会返回读取的长度,当读取到文件尾之后就会返回-1
然后(len=fr.read(buf))!=-1就相当于len!=-1,条件语句和while结合起来看,如果文件读取到末尾后返回-1之后,循环里的输出语句就不会执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式