批量读取的时候,数组的大小不能够一次性读完,视频中的案例是不是就没有读完大文件的所有字节。
for循环输出buf数组中的内容, while循环控制文件是否读完;
read()返回的读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。
我的理解是一个水池,大小是buf.length 放满水后(存满了数据)从另个通道排出, 然后进水口在继续进水(继续读取数据,从0到buf.length)当最后一次排水结束 进水口没有进水了 返回了-1 触发了whlie的条件 跳出了该代码段; 以上是个人的一些愚见 希望大家能够告诉我理解错误的地方
不是太懂。假如一个水池有100L的水,有个11 L的容器取水,每次取11 L,前9次都是满的11L,最后一次取水水池只剩1L的水了。容器是把这1L的水取走就判断返回-1了,还是最后一次取走后再一次循环判断是否返回-1?