如何确定缓冲区的大小,同时使用缓冲输入流读取批量文件?它是基于文件大小吗?我正在使用,
byte[] buf = new byte[4096];
如果我增加缓冲区大小,它会快速读取吗?
如何确定缓冲区的大小,同时使用缓冲输入流读取批量文件?它是基于文件大小吗?我正在使用,
byte[] buf = new byte[4096];
如果我增加缓冲区大小,它会快速读取吗?
故意未记录的默认值为 8192 字节。除非你有一个令人信服的理由来改变它,否则不要改变它。
您可以轻松地自己测试它,但这并不是一个大问题。几千字节的缓冲区就足够了,因此您将获得良好的阅读速度。
如果您分析您的应用程序并意识到文件 IO 是性能瓶颈,那么有一些方法可以使其更快,例如内存映射文件。
您在那里显示的是您正在读入(数组)的“字节大小”。
如果您正在从 FileInputStream 读取(即非缓冲),那么更改该大小将更改读取大小,是的。
这与 BufferedInputStream 使用的内部缓冲区不同。它没有getter,但您可以在构造函数中指定大小并从中“记住”我想。默认为 8K,这可能不是最佳的。