First of all, BufferedReader accepts a Reader , not a FileReader (although the latter is accepted).
The abstract Reader class has several read() methods. There is a single-character version, as well as two versions that read a block of characters into an array.
It makes sense to use BufferedReader if you are reading single characters or small blocks at a time.
Consider the following two queries:
char ch1 = fileReader.read(); char ch2 = bufferedReader.read()
The first of them will go to the base file, and the second will most likely be executed from the internal BufferedReader buffer.
source share