黑马程序员技术交流社区

标题: 拷贝文本文件 [打印本页]

作者: qq8921310    时间: 2014-10-26 23:17
标题: 拷贝文本文件
练习二 从C盘的一个文本文件复制到D盘


里面while循环的条件不太明白
视频里 while(num=fr.read(buf)!=-1)
我写的时候直接报错。错误:不兼容类型Int无法转换为Boolean

按照自己的理解写的时候
while(fr.read(buf)!=-1)
num = fr.read(buf)

编译时通过 但是运行时提示角标越界。

第三次while(fr.read()!=-1)
直接通过。有没有大神说明一下。
作者: qq8921310    时间: 2014-10-26 23:28
我的问题已经解决了,自己没理解好。沉了吧。
作者: 颜仔    时间: 2014-10-26 23:38
while(num=fr.read(buf)!=-1)这个少一对括号。while((num=fr.read(buf))!=-1)
第二个你读完之后又读了一次read,它每次是从读完之后开始接着往下读的,已经读完,所以会角标越界。
第三个你没有往read里面传数据。要传入你所读的数据的。
作者: 暮色醉玄阳    时间: 2014-10-26 23:53
:):):):):)
作者: 心?=忐§忑]    时间: 2014-10-31 19:58
这样写:while((num = fr.read(buf))!=-1)  ,加括号,返回的是boolean值了
作者: ll_shitou    时间: 2014-11-1 08:50
第一个肯定不对少括号
while(fr.read(buf)!=-1)
num = fr.read(buf)
你读了2次buf吧

作者: win_top1    时间: 2014-11-9 22:30
对于while(num=fr.read(buf)!=-1),因该改为while((num=fr.read(buf))!=-1)
作者: 王会涛    时间: 2014-11-10 09:54
楼主好细心,学习了
作者: win_top1    时间: 2014-11-10 22:31
顶一个!:)




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