很抱歉如果这是一个重复的问题,但我找不到一个明确的答案来确定每种类型的最佳实践。
我想知道什么是使用 BufferedReader vs FileReader 或 BufferedInput/OutputStream vs FileInput/OutputStream 的适当条件?是否有一种公式可以始终告诉您何时使用哪一种更为合适?
我应该总是使用缓冲区吗?
谢谢
很抱歉如果这是一个重复的问题,但我找不到一个明确的答案来确定每种类型的最佳实践。
我想知道什么是使用 BufferedReader vs FileReader 或 BufferedInput/OutputStream vs FileInput/OutputStream 的适当条件?是否有一种公式可以始终告诉您何时使用哪一种更为合适?
我应该总是使用缓冲区吗?
谢谢
如果流将有许多小访问,请使用缓冲区;如果您将有相对较少但是比较大的访问,请使用非缓冲。
只有在缓冲带来的延迟和聚合对你的应用不合适时,才应该使用非缓冲I/O。
byte []
进行缓冲时,您会怎么做?您会将其包装在一个缓冲区中吗? - Jé Queue“是否有一种公式可以总是告诉你什么是合适的?”
如果有的话,它已经在图书馆中了,而且不会是您必须做出的设计决策。
由于没有明确的答案,你必须自己做出设计决策,你必须认真思考。
或者,您可以尝试两种选项,并根据您的独特问题和独特标准确定哪个更好。
大多数标准 I/O 库都是缓冲的。这表明大多数 I/O 受益于缓冲。但并非所有情况都是如此。例如,游戏需要对游戏控件进行无缓冲访问。
请记住,BufferedReader
还提供了一个方便的 readLine()
方法,允许您一次读取一行内容。
如果使用Buffered*可以使您的应用程序更快,我建议您使用它,否则我就不会烦恼了。即尝试使用真实数据来查看它是否有帮助。