0

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

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

1 回答 1

2

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

一般来说,读取 10 乘以 4096 字节要比读取 4096 乘以 10 字节快得多。

于 2013-11-02T17:59:42.317 回答