上篇文章介绍了两种常用的文件输入输出流:java 字节流入门(文件流)
其中向文件中写入的数据都是预先定义好的字节数组 byte[] ,本文介绍另一种在内存中维护字节数组更常用的方式:内存数组输入输出流。
内存数组流,就是和内存中的数组相关的一个流,可以将字节数组写到输出流中,也可以将字节数组从输入流中读出来,不涉及磁盘。
内存数组输出流:ByteArrayOutputStream
内存数组输出流可以看成一个可自动扩容的 byte 数组,可以往里写字节。
默认初始化 32 个字节的大小。
最大容量是 2^31-9 个字节(2G)。只要数据不超过2G,都可以往里写。每次写数据之前,会先计算需要的容量大小,如果需要扩容,扩大到 max{原来的两倍,需要的容量大小}
此外,还可以将 ByteArrayOutputStream 中的字节数组拿出来,拿出来的只是真实存在的数据量。
为了验证扩容方式,把其内部缓冲区拿出来