Java,io流小问题

str=newFileInputStream(file);byte[]car=newbyte[1024];intlen=-1;while(-1!=(len=str.rea... str=new FileInputStream(file);
byte[] car=new byte[1024];
int len=-1;
while(-1!=(len=str.read(car))) {//重点在这里!
str.read(car);//这里是否多余?
String info=new String(car,0,len);
System.out.println(info);
}
在while循环的判断条件中,我们用到了str.read(car),但是目的是将read方法的返回值赋给len,有点不明白在判断语句中用到了read方法后,在循环体中再写一次str.read(car)是否多余呢?也就是说判断条件中写过的代码不仅会当成判断的条件,也会是被真正的执行吗?后面的一句 str.read(car)就不用写了呢?
展开
 我来答
狂风弄影
2018-08-10 · TA获得超过265个赞
知道答主
回答量:53
采纳率:66%
帮助的人:16.3万
展开全部

问题1:判断条件中写过的代码不仅会当成判断的条件,也会是被真正的执行吗?

:会。毫无疑问的会。当程序运行到那一行的时候,不论在什么位置,都会真正的执行的,这才是叫做程序。

问题2:后面的一句 str.read(car)就不用写了呢?

:不用写。在while条件中,每次循环就已经读取了。楼主之所以会有问题2,在于对问题1的疑惑。

追问
感谢解答,现在明明白白的了,谢谢谢谢
黎凡s
2018-08-10 · 穷则独善其身。。。。。。
黎凡s
采纳数:197 获赞数:364

向TA提问 私信TA
展开全部
嗯 判断中的也会执行,后面的多余了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式