其实这个问题,主要就是个流的概念的问题
流就是一种数据在传输时的形态,简单理解的话,你可以把流想象成一串有序的010010101010之类的序列
所以,不管你调用什么方法去读取数据,数据永远是以这样一串有序的数字的形态依次读取进来的
其实,所有各种各样的读取方法之间的区别,只是每次读取数据时所使用的单位不同而已,本质上都是一样的
所以,当你调用fr.read()方法读取数据的时候,数据也是通过这样一个序列依次地读取进来的
用你的话说,应该就是“每次获取一个字符存到ch中,直到chd存满为止”了
其实更确切的说,应该是下面这种说法:
将字符按顺序依次地读到ch中,直到chd存满、或者文件中没有可读的字符,或者读取的过程中出现异常为止
所以,缓冲区的作用是:
fr只管一门心思从文件中往缓冲区里读数据,只要缓冲区读满了,就返回一次
而不是,fr根据缓冲区的大小,去读取文件中相应长度的数据并返回
这样解释的话,应该就更明白些了吧~
[ 本帖最后由 李叶 于 2011-08-30 11:25 编辑 ] |