Bufferedoutputstream has a byte [] Buf member. You can use the following code to obtain its default size.
Bufferedoutputstream Bos = new bufferedoutputstream (Someoutputstream);
Bos. Buf. length;
However, Buf is a protected variable and cannot be accessed directly, and there is no corresponding get method. What should I do? We know that the protected member is visible on the inheritance tree, that is, its child is visible, so we can think of inheriting bufferedoutputstream to get the Buf size. The Code is as follows:
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 ();
}
}
}
The running result is 8192 bytes!
The same applies to bufferedinputstream.