ByteArrayOutputStream

ByteArrayInputStream: https://www.cnblogs.com/zhangj-ymm/p/9842657.html 

ByteArrayOutputStream是字节数组输出流,它把数据写入到自己的数组中,数组的大小会随着数据的不断增加而自动增长.

  1. 通过ByteArrayOutputStream()创建的"字节数组输出流"对应的字节数组大小是32
  2. 通过ByteArrayOutputStream(int size)创建的"字节数组输出流"对应的字节数组大小是size.
  3. write(int oneByte)的作用将int类型的oneByte换成byte类型,然后写入到流中.
  4. write(byte[] buffer,int offset,int len)是将字节数组buffer写入到流中,offset是从buffer中读取数据的起始偏移量,len是读取长度
  5. writeTo(OutputStream out)将数据写到"输出流out"中
public class ByteArrayOutputStreamTest {
    private static final int LEN = 5;
    // 对应英文字母“abcddefghijklmnopqrsttuvwxyz”
    private static final byte[] ArrayLetters = { 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C,
        0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A };

    public static void main(String[] args) {
    // 创建字节输出流
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    // 依次写入“A”、“B”、“C”三个字母。0x41对应A,0x42对应B,0x43对应C,写入到流中
    baos.write(0x41);
    baos.write(0x42);
    baos.write(0x43);
    System.out.printf("baos=%s
", baos);
    // 将ArrayLetters数组中从“3”开始的后5个字节写入到baos中。
    baos.write(ArrayLetters, 3, 5);
    System.out.printf("baos=%s
", baos);
    }
}
// baos=ABC
// baos=ABCdefgh
原文地址:https://www.cnblogs.com/zhangj-ymm/p/9860696.html