赞
踩
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也一样。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。