问答详情
源自:4-2 字节流之文件输入流FileInputStream-2

批量读取问题

批量读取的时候,数组的大小不能够一次性读完,视频中的案例是不是就没有读完大文件的所有字节。

提问者:苦茶好好喝喝 2015-09-09 15:01

个回答

  • demmo
    2015-10-18 10:47:28
    已采纳

    for循环输出buf数组中的内容, while循环控制文件是否读完;

     read()返回的读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。


    此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。


    我的理解是一个水池,大小是buf.length  放满水后(存满了数据)从另个通道排出, 然后进水口在继续进水(继续读取数据,从0到buf.length)当最后一次排水结束 进水口没有进水了  返回了-1  触发了whlie的条件  跳出了该代码段;  以上是个人的一些愚见  希望大家能够告诉我理解错误的地方


  • 慕粉3727206
    2016-09-01 21:13:08

    不是太懂。假如一个水池有100L的水,有个11 L的容器取水,每次取11 L,前9次都是满的11L,最后一次取水水池只剩1L的水了。容器是把这1L的水取走就判断返回-1了,还是最后一次取走后再一次循环判断是否返回-1?