课程
/后端开发
/Java
/文件传输基础——Java IO流
批量读取的时候,数组的大小不能够一次性读完,视频中的案例是不是就没有读完大文件的所有字节。
2015-09-09
源自:文件传输基础——Java IO流 4-2
正在回答
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?
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
4 回答求教批量读取
1 回答关于文件批量读取的起始位置的问题
4 回答单字节读取时Integer.toHexString(b) 批量读取时Integer.toHexString(buf[i]&0xff)
2 回答带缓冲的应该比批量的读取快吧?带缓冲的批量比批量快吧?
3 回答批量读取是否还需要循环与判断-1