ByteArrayOutputStream是使用字节数组作为目标的输出流的一个实现。ByteArrayOutputStream有两个构造函数,如下:
ByteArrayOutputStream()
ByteArrayOutputStream(int numBytes)
在第一种形式中,创建一个32字节的缓存。在第二种形式中,创建一个由numBytes指定大小的缓存。缓存被保存在ByteArrayOutputStream中受保护的buf域变量中。如果需要的话,缓存的大小会自动增加。缓存能够保存的字节数量包含在ByteArrayOutputStream中受保护的count域变量中。
close()方法对ByteArrayOutputStream对象没有效果。所以,不需要为ByteArrayOutputStream对象调用close()方法。但是如果调用的话,也不会产生错误。另外,它也有一个reset()方法重置到buf的开头。
例1:
package o1;
import java.io.ByteArrayOutputStream;
public class ByteArrayOutputStreamTest1 {
public static void main(String[] args) {
String str = "abcdefghijklmnopqrstuvwsyz";
try(ByteArrayOutputStream out = new ByteArrayOutputStream(50)){
out.write(str.getBytes());
out.writeTo(System.out); //注意这个writeTo()方法,它写入标准输出流
out.flush();
}catch(Exception e){
e.printStackTrace();
}
}
}