缓存器的作用原理
//创建缓冲区
byte[] b = new byte[1024];
//得到字节数的默认值,当数组读到最后的返回值为-1
int len;
//把fis流里面的全部内容都读取到b数组里面取,如果读到最后时跳出循环
while ((len = fis.read(b)) != -1){
//把字节数组打印为字符串输出,从0位置开始到最后len
System.out.println(new String(b,0,len));
}
有一个地方感觉很奇怪就是这个缓冲器大小
开始学习的时候感觉如果我读取的文件比缓存区大小大时,读取出来的文件是不是只有数组内保留的字段,其他自动删除
后来经过测试发现并不会,原理是bytes第一次塞满时,文件被读到的地方会有一个记录,所以当循环体执行完后,fis从上次循环结束的记录向下读文件,又把while循环阻塞在判断语句,反复如此读取文件。