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

为什么拿字节个数和-1进行比较

视频第7分30开始,老师开始考虑字节数组不够存放的情况。这里的判断条件是:

(bytes = in.read(buf, 0, buf.length))!=-1;既然前面说了bytes返回的是字节个数。

那么我认为比较条件不该是这样么?

(bytes = in.read(buf, 0, buf.length))> 20*1024

正在回答

2 回答

bytes是读取到字节的长度,如果因为流位于文件末尾而没有 可用 的字节,则返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果这样设置的话,后面已经没有可用的字节还是会继续读入,这样会异常吧。

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

"因为流位于文件末尾而没有 可用 的字节,则返回值 -1。"这个很关键,老师貌似没这么说,还是我听漏了?只知道他说过指针读取到文件末尾会返回-1。看样子这个“文件末尾返回-1”是适用所有IO流中的方法的咯

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

pergod

对,可以查看一下API文档,任何继承了InputStream的类都是这样读入的
2016-12-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么拿字节个数和-1进行比较

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