缓冲与非缓冲,哪一个使用?

时间:2009-07-06 18:41:56

标签: java file buffered

如果这是重复的话,我很抱歉,但我无法找到对每种类型的最佳做法的明确答案。

我想知道什么是适当的条件来定义何时使用BufferedReader与FileReader或BufferedInput / OutputStream与FileInput / OutputStream?是否有一个总是告诉你什么是合适的种类公式?

我应该只使用缓冲吗?

由于

5 个答案:

答案 0 :(得分:14)

如果流将具有大量小访问权限,请使用缓冲区。如果您要进行相对较少的相对较大的访问,请使用无缓冲。

答案 1 :(得分:3)

您应该使用无缓冲I / O的唯一时间是缓冲带来的延迟和聚合对您的应用程序不适当。

答案 2 :(得分:2)

“是否有一种类型的公式可以告诉您什么是合适的?”

如果有的话,它已经存在于图书馆中,并且不会是您必须做出的设计决定。

由于没有答案,你必须做出设计决定,你必须要考虑它。

或者,您可以尝试这两个选项,根据您的独特问题和您的独特标准,查看哪个选项“更好”。

大多数标准I / O库都是缓冲的。这暗示大多数I / O都可以从缓冲中受益。但不是所有的。例如,游戏需要无人访问游戏控件。

答案 3 :(得分:1)

另请注意,BufferedReader为您提供了方便readLine()方法,允许您一次只读一行内容。

答案 4 :(得分:0)

我建议您使用Buffered *,如果这会让您的应用程序更快,否则我不会打扰它。即尝试使用实际数据,看看它是否有帮助。