使用BufferedReader有什么效率影响?

sap*_*Pro 4 java file bufferedreader

用于从文件中读取字符的这两种方法有什么区别.

第一

FileReader fr = new FileReader( new File( "file.txt") );
int x = 0;
while( ( x = fr.read() ) != -1 ) {
    System.out.println( (char) x );
}
Run Code Online (Sandbox Code Playgroud)

第二

BufferedReader bfr = new BufferedReader( new FileReader( new File( "file.txt") ) );
int x = 0;
while( ( x = bfr.read() ) != -1 ) {
    System.out.println( (char) x );
}
Run Code Online (Sandbox Code Playgroud)

这两个代码都从文件中读取字符并将其写在控制台上.

哪种方法更有效,为什么? 或者它是一回事?

小智 13

考虑一个距离您5公里的水箱.对于每一桶水,你必须行驶5公里.为了减少你的努力,你带一个小坦克,填充一次3-4天.然后从你家里的小水箱里装满水桶.

在上面的例子中,5千米以外的水箱是硬盘上的文件,如果你使用裸露的阅读器,就像每桶水一样行驶5公里.所以你带一个小坦克(BufferedReader).


cwa*_*ole 9

这样说文档:

通常,由Reader构成的每个读取请求都会导致相应的读取请求由基础字符或字节流构成.因此,建议将BufferedReader包装在任何read()操作可能代价高昂的Reader上,例如FileReaders和InputStreamReaders.

  • “底层字符或字节流”是什么意思。它是什么 ? (2认同)