获取outputstream大小_BufferedOutputStream的缓冲区多大
BufferedOutputStream有一个Byte[] buf成员,按理说用下面的代码就能得到其默认大小BufferedOutputStream bos = newBufferedOutputStream(someOutputStream);bos.buf.length;但是buf是protected变量,不能直接访问,也没有相应的get方法,怎么办?我们知道protected成员在继承树上.
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也一样。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)