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也一样。

阅读更多
想对作者说点什么? 我来说一句

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