BufferedInputStream的缓冲区大小

时间:2013-10-24 08:47:15

标签: java size buffer bufferedinputstream

如何确定Buffer的大小,同时使用Buffered Input Stream读取批量文件?它是基于文件大小吗?我正在使用,

byte[] buf = new byte[4096];

如果我增加缓冲区大小,它会快速读取吗?

3 个答案:

答案 0 :(得分:9)

默认情况下,故意未记录,为8192字节。除非你有令人信服的理由改变它,否则不要改变它,

答案 1 :(得分:2)

您可以自己轻松测试,但这不是一个大问题。几千字节足以容纳缓冲区,因此您将获得良好的阅读速度。

如果您对应用程序进行概要分析并确实意识到文件IO是一个性能瓶颈,那么有一些方法可以使它更快,例如内存映射文件。

答案 2 :(得分:0)

您显示的是您正在读入(数组)的“字节大小”。

如果您从 FileInputStream 读取(即非缓冲),那么更改该大小将更改读取大小,是的。

这与 BufferedInputStream 使用的内部缓冲区不同。它没有 getter,但您可以在构造函数中指定大小并从中“记住”我想。默认为 8K,这可能不是最佳的。