BufferedinputStream默认缓冲区大小

时间:2015-06-02 19:20:42

标签: java

我的jvm的BufferedinputStream默认缓冲区大小为8k。 这是一个带编码的值,还是可以通过改变一些系统参数来改变它?

我希望在不修改java代码的情况下使用128k。 这可能吗?

谢谢,

3 个答案:

答案 0 :(得分:2)

这不是您的JVM,但是Java8K定义了BufferedInputStream的默认值。

如果不修改java程序,则无法从外部更改。

要从Java进行修改,您需要在Stream构造函数中传递SIZE。

new BufferedInputStream(file, size * 1024);其中128KB的大小可以是128。

答案 1 :(得分:1)

无法通过系统属性更改默认缓冲区大小。您必须使用接受size参数的构造函数。创建缓冲区的唯一位置是在此构造函数中:

public BufferedInputStream(InputStream in, int size) {
    super(in);
    if (size <= 0) {
        throw new IllegalArgumentException("Buffer size <= 0");
    }
    buf = new byte[size];
}

这适用于我的JVM版本(1.8.0_31),但在其他实现上可能会有所不同。

答案 2 :(得分:0)

您可以使用BufferedInputStream(InputStream in, int size)构造函数。但除非非常必要,否则不要改变它。