BufferedOutputStream的缓冲区多大

本文介绍了一种通过继承BufferedOutputStream类并利用其受保护成员变量buf的方法,来获取BufferedOutputStream默认缓冲区大小的技术。通过这种方式,我们发现BufferedOutputStream的默认缓冲区大小为8192字节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值