BufferedOutputStream的缓冲区多大

BufferedOutputStream有一个Byte[] buf成员,按理说用下面的代码就能得到其默认大小

BufferedOutputStream bos = new BufferedOutputStream(someOutputStream);

bos.buf.length;

但是buf是protected变量,不能直接访问,也没有相应的get方法,怎么办?我们知道protected成员在继承树上是可见的,就是说其孩子可见,那么可以想到通过继承BufferedOutputStream的办法,来获取buf的大小,代码如下:

 

public class MyBufferedOutputStream extends BufferedOutputStream {

public MyBufferedOutputStream(OutputStream out){

super(out);

System.out.println("buf size: " + super.buf.length);

System.out.println("count: " + super.count);

}

public static void main(String[] args) {

try {

MyBufferedOutputStream mbos = new MyBufferedOutputStream(new FileOutputStream("123.txt"));

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}

 

 

运行结果为:8192字节!

对于bufferedInputStream也一样。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试