在用java实现文件复制的时候,(len=in.read(bytes))!=-1为什么必须判断!=-1,这个判断的具体意思是什么

FileInputStreamin=newFileInputStream("f:/test.txt");FileOutputStreamout=newFileOutput... FileInputStream in=new FileInputStream("f:/test.txt");
FileOutputStream out=new FileOutputStream("e:/test.txt");
byte[] bytes=new byte[512];
int len=-1;
while((len=in.read(bytes))!=-1){
out.write(bytes, 0, len);
}
展开
 我来答
百度网友6724e5c
推荐于2017-09-20 · TA获得超过376个赞
知道答主
回答量:60
采纳率:0%
帮助的人:78.4万
展开全部
public int read(byte[] b)
这个方法是从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中
它是有返回值的,它返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1
就是当它返回-1的时候 数据已经复制完了 while循环终止程序结束
追问
呵呵,这个问题已经解决。但我还是不明白,当它读到的数据没用完时,返回的是读到的数组的长度吗
IT_TWG
2018-08-07
知道答主
回答量:1
采纳率:0%
帮助的人:842
展开全部
这个是读取一个文件中的数存入bytes中在将bytes中的每一个分别赋值给len。如果还有值,那么len就不等于-1,那么就会循环的继续读取,直到读取完值为止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
般若兮若
2013-10-17 · TA获得超过2706个赞
知道小有建树答主
回答量:1246
采纳率:0%
帮助的人:940万
展开全部
read返回值是读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1.意思是已经到达末尾.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式