inputstream是一个字节一个字节的读取,每次读取都会执行一次IO,我们知道io的操作是很费时间的,这就必然会导致程序的效率,而bufferedreader很好的解决这一问题,它可以一次读取大量的数据,大大减少了io次数,效率也就上去了,虽然bufferedreader的用法比inputstream要复杂,但是复杂的东西必然会导致优势的存在!举个例子:松鼠储量。冬天快到了,松鼠需要为过冬作准备了,松鼠有个布袋,一次能装100粒玉米,恰巧来到一片玉米地,地上散落了100粒玉米,如果松鼠只会使用inputstream,那他需要来回100次才能把地上的100粒玉米运到自己的巢穴,这多费事啊,松鼠可能会累死,O(∩_∩)O。如果松鼠会使用bufferedreader,那他只要一次把100粒玉米装进口袋,一个来回就能运进自己的窝,效率大大的提高了。
Scanner 和BufferedReader都能实现将键盘输入的数据送入程序,BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。Scanner类位于java.util包中,要加上import java.util.Scanner;