视频第7分30开始,老师开始考虑字节数组不够存放的情况。这里的判断条件是:
(bytes = in.read(buf, 0, buf.length))!=-1;既然前面说了bytes返回的是字节个数。
那么我认为比较条件不该是这样么?
(bytes = in.read(buf, 0, buf.length))> 20*1024
bytes是读取到字节的长度,如果因为流位于文件末尾而没有 可用 的字节,则返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果这样设置的话,后面已经没有可用的字节还是会继续读入,这样会异常吧。
"因为流位于文件末尾而没有 可用 的字节,则返回值 -1。"这个很关键,老师貌似没这么说,还是我听漏了?只知道他说过指针读取到文件末尾会返回-1。看样子这个“文件末尾返回-1”是适用所有IO流中的方法的咯