FileReader也有缓冲方法

问题描述

我刚刚发现了这个

FileReader reader = new FileReader("SomePath");
char[] buf = new char[100];
reader.read(buf);

所以,如果FileReader本身具有读取1个以上字节的方法,为什么还要使用BufferedReader。

解决方法

因为您传递给read(char[])方法的100个字符数组比可以从硬盘驱动器读取的最有效的块大小小得多。缓冲区使您可以以方便代码的大小进行读取,同时仍在硬件层中保持最佳读取大小。

那么BufferedReader的最佳读取大小是多少?它取决于基础数据源。如果您不知道,请使用默认大小。