== 1. read() calls that reach the underlying InputStream (first 50 MB of the file) ==
InputStreamReader.read() per char      underlying calls=    6,104   avg bytes/call= 8,192.0
BufferedReader(8192).read() per char   underlying calls=    6,104   avg bytes/call= 8,192.0
BufferedReader(8192).readLine()        underlying calls=    6,104   avg bytes/call= 8,192.0
BufferedReader(65536).readLine()       underlying calls=    6,104   avg bytes/call= 8,192.0
BufferedReader(1).readLine()           underlying calls=    6,104   avg bytes/call= 8,192.0

== 2. time to consume the whole file (3 passes each; indicative, same JVM) ==
pass 1  InputStreamReader.read() per char   6,493 ms
pass 1  BufferedReader.read() per char      4,902 ms
pass 1  BufferedReader.readLine()             206 ms
pass 2  InputStreamReader.read() per char   7,373 ms
pass 2  BufferedReader.read() per char      4,948 ms
pass 2  BufferedReader.readLine()             279 ms
pass 3  InputStreamReader.read() per char   7,395 ms
pass 3  BufferedReader.read() per char      5,077 ms
pass 3  BufferedReader.readLine()             269 ms
