如果这是重复的,我很抱歉,但我无法找到每种类型的最佳实践的明确答案。
我想知道定义何时使用 BufferedReader 与 FileReader 或 BufferedInput/OutputStream 与 FileInput/OutputStream 的适当条件是什么?是否有某种公式总能告诉你什么是合适的?
我应该总是使用缓冲吗?
谢谢
如果流将有很多小访问,请使用缓冲区。如果您要进行相对较少、相对较大的访问,请使用无缓冲。
唯一应该使用无缓冲 I/O 的情况是缓冲带来的延迟和聚合不适用于您的应用程序。
“有没有什么公式总能告诉你什么是合适的?”
如果有,它已经在库中,并且不是您必须做出的设计决定。
由于没有简单的答案,您必须做出设计决定,您必须实际考虑它。
或者,您可以尝试这两个选项,并根据您的独特问题和独特标准查看哪个“更好”。
大多数标准 I/O 库都是缓冲的。这暗示了大多数 I/O 受益于缓冲。但不是所有的。例如,游戏需要对游戏控件进行无缓冲访问。
还要记住,它BufferedReader
为您提供了一种方便的readLine()
方法,允许您一次阅读一行内容。
我建议您使用 Buffered* 如果这可以让您的应用程序运行得更快,否则我不会打扰它。即用真实的数据试试看它是否有帮助。