用于从文件中读取字符的这两种方法之间有什么区别。
第一
FileReader fr = new FileReader( new File( "file.txt") );
int x = 0;
while( ( x = fr.read() ) != -1 ) {
System.out.println( (char) x );
}
SECOND
BufferedReader bfr = new BufferedReader( new FileReader( new File( "file.txt") ) );
int x = 0;
while( ( x = bfr.read() ) != -1 ) {
System.out.println( (char) x );
}
两个代码都从文件中读取字符并将其写在控制台上。
哪种方法效率更高?为什么? 或者它是一回事?
答案 0 :(得分:13)
考虑离你5公里的水箱。每桶水需要行驶5公里。为了减少你的努力,你带一个小坦克,填充一次3-4天。然后从你家里的小水箱里装满水桶。
在上面的例子中,5公里外的水箱是硬盘上的文件,如果你使用裸露的阅读器,就像每桶水一样行驶5公里。所以你带了一个小坦克(BufferedReader)。
答案 1 :(得分:9)
如此说出docs:
通常,由Reader构成的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议将BufferedReader包装在任何read()操作可能代价高昂的Reader上,例如FileReaders和InputStreamReaders。
答案 2 :(得分:0)
@ cwallenpoole的回答只是一点点补充。界面也有区别。例如,在BufferedReader中有一个很好的方法readLine(),我大量使用它。