JDK文档上这样描述ByteArrayOutputStream:
此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用toByteArray()
和toString()
获取数据。
它继承于OutputStream。
DataOutputStream允许将Java中基本的数据类型写入到输出流中,它是一个过滤输出流(FilterOutputStream),构造方法需要一个OutputStream。
通过下面代码,我们可以看到将上述二者结合可以很容易构造字节数组。
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
try {
dos.write(3);
dos.writeBytes("abc");
} catch (IOException e) {
e.printStackTrace();
}
byte[] bArray = bos.toByteArray();
for (int i = 0; i < bArray.length; ++i){
System.out.println(bArray[i]);
}