为了账号安全,请及时绑定邮箱和手机立即绑定

in.read(buf, 0, buf.length)这个方法可能为-1吗

int read = in.read(buf, 0, buf.length);好疑惑,in.read(buf, 0, buf.length)这个方法不是一次性读完了嘛,怎么还有可能为-1呢??

正在回答

2 回答

in.read(buf, 0, buf.length)这个方法不是一次性读完了嘛?

首先对于你的这个理解是错误的,因为这个方法正确的理解是把文件内容的字节读入到字节数组buf中,但是文件内容的字节有可能大于字节数组buf的长度,那么文件内容就一次读不完。

in.read(buf, 0, buf.length)这个方法可能为-1吗

再来说说这个方法的返回值,这个方法返回的是实际读取到字节数组中的字节的数量。官方api明确指出,如果已经达到文件的末尾,返回值为-1.

0 回复 有任何疑惑可以回复我~
#1

qq_疾速小蜗牛_0

但是老师一次一次性读完文件的那个方法中,bytes的值应该也是-1啊,这样的话,for循环就不能运行。
2016-06-23 回复 有任何疑惑可以回复我~
#2

怒放的生命012 回复 qq_疾速小蜗牛_0

对呀,就是为了让for循环不能运行,防止死循环
2016-06-30 回复 有任何疑惑可以回复我~

就是相当于我们的文件结尾

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

in.read(buf, 0, buf.length)这个方法可能为-1吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信