JDK文檔上這樣描述ByteArrayOutputStream:
此類實現了一個輸出流,其中的數據被寫入一個 byte 數組。緩沖區會隨着數據的不斷寫入而自動增長。可使用toByteArray()和toString()獲取數據。
它繼承於OutputStream。
DataOutputStream允許將Java中基本的數據類型寫入到輸出流中,它是一個過濾輸出流(FilterOutputStream),構造方法需要一個OutputStream。
通過下面代碼,我們可以看到將上述二者結合可以很容易構造字節數組。
1
ByteArrayOutputStream bos =
new
ByteArrayOutputStream();
2 DataOutputStream dos = new DataOutputStream(bos);
3
4 try {
5 dos.write(3);
6 dos.writeBytes("abc");
7 } catch (IOException e) {
8 e.printStackTrace();
9 }
10
11 byte[] bArray = bos.toByteArray();
12
13 for (int i = 0; i < bArray.length; ++i){
14 System.out.println(bArray[i]);
15 }
// output:
3
97
98
99
