是的。BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
will buffer the input from the specified file.Without buffering, each invocation of read() or readLine() could cause bytes to be read from the file, converted into characters, and then returned, which can be very inefficient. 翻译一下就是:
BufferedReader in
   = new BufferedReader(new FileReader("foo.in"));
会把来自指定文件的输入缓存起来。如果不采用缓存,那么每一次对read或者readLine的调用都会引起从文件中读取字节,转传成字符,然后返回,这是很低效的。

解决方案 »

  1.   

    steedhorse(晨星):谢谢,怎么我开俩贴都是只有你来回答哦,而且回答都还一字不改,哈哈,这也太便宜你了吧,所以我决定再问你一个问题,然后才给你结贴!哈哈象这种缓存的概念我一直都不清楚,你帮我说明一下。
    1.缓存是在内存上开空间缓存呢,还是在硬盘上开空间缓存?
    2.缓存起什么作用啊?什么原理啊?……………………
    3.…………反正就是不明白~~~~
      

  2.   

    偶也只知道缓冲是在内存里开空间,其他不是很清楚,哈哈。不过看文档中的意思,这里的“缓存”已经不同于操作系统本来就有的文件缓存,而似乎是文件一打开,就把所有从文件中读取的byte序列转换成Unicode编码的char序列,缓存在那里,以后读取的时候,就是只接读取内存内容就可以了。所以效率高。缓存还有个好处,写的时候,并不立即写到外存,而是暂时放在内存中,而是等到CPU稍微空闲时,选择适当的时机写道磁盘上去。