是BufferdStream造就的缓冲吗?
书上常说,单字节的读取,效率低下,应使用缓冲来提高效率,于是就使用了BufferdInputStream和BufferdOutputStream.
缓冲的意思是说,先将输出的或读入的数据存在内存中,然后一次性的打开流,将数据全部放入流中。
于是我打开了jasva.io包,并且看了一下BufferdInputStream中的内容,发现其并没有什麽新东西,对输入也只是调用了read(byte[])的方法。而read(byte[])方法可是用一个循环,每次读入一个字节,即每次调用input.read()的抽象方法。而read(byte[])的方法其它的流也调用呀!?BufferdStream的缓冲体现在什麽地方?
另外,有关缓冲区满即刷新,和用回车符来刷新缓冲区的内容在BufferdInputStream也根本未见到。我想问,先将从键盘输入的字符存进缓冲区,然后利用缓冲区满或回车符来刷新缓冲区是不是windows操作系统自定义的呀?还是windows操作系统根本没定义缓冲区,所有从键盘输入的字节都将直接进入流,而是java语言自己定义缓冲区,和相关的刷新?