Scanner构造函数中的BufferedReader

时间:2013-11-02 17:53:55

标签: java bufferedreader

我正在研究BufferedReader,Scanner和InputStreamReader类及其差异,我理解每个类的目的。我想要一个解释来澄清一件事:在Scanner的构造函数中传递BufferedReader的目的是什么?这样做的具体原因是什么? 以下是我所指的例子。

    Scanner s = null;
    try {
        s = new Scanner(new BufferedReader(new FileReader("file....")));
          //more code here.........

1 个答案:

答案 0 :(得分:2)

BufferedReader将创建一个缓冲区。这应该可以更快地从文件中读取。为什么?因为缓冲区充满了文件的内容。所以,你把一大块文件放在RAM中(如果你处理小文件,缓冲区可以包含整个文件)。现在,如果扫描仪想要读取两个字节,它可以从缓冲区读取两个字节,而不必向硬盘驱动器请求两个字节。

一般来说,读取10次4096字节而不是4096次10字节要快得多。