我的jvm的BufferedinputStream默认缓冲区大小为8k。 这是一个带编码的值,还是可以通过改变一些系统参数来改变它?
我希望在不修改java代码的情况下使用128k。 这可能吗?
谢谢,
答案 0 :(得分:2)
这不是您的JVM
,但是Java
为8K
定义了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)构造函数。但除非非常必要,否则不要改变它。