目錄:系統學習 Java IO---- 目錄,概覽html
若是數據存儲在數組中,ByteArrayInputStream 能夠很方便讀取,它能夠返回 InputStream , 這樣,ByteArrayInputStream 能夠包裝字節數組,並將其轉換爲流。java
public ByteArrayInputStream(@NotNull byte[] buf)
: 建立一個 ByteArrayInputStream ,以便它使用 buf 做爲其緩衝區數組。 pos 的初始值爲 0 ,count 的初始值爲 buf 的長度。數組
注意:關閉 ByteArrayInputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會產生任何 IOException。緩存
建立一個新的字節數組輸出流。 緩衝區容量最初爲32字節,但必要時其大小會增長。學習
OutputStream output = new ByteArrayOutputStream();
建立一個32字節(默認大小)的緩衝區。ByteArrayOutputStream(int size)
建立一個新的 byte 數組輸出流,它具備指定大小的緩衝區容量(以字節爲單位)。能夠將數據寫入 ByteArrayOutputStream ,完成後,調用 ByteArrayOutputStream 的方法 toByteArray() 以獲取字節數組中的全部寫入數據。
byte[] bytes = output.toByteArray();
code
一樣,關閉 ByteArrayOutputStream 無效。此類中的方法在關閉此流後仍可被調用,而不會產生任何 IOException 。htm
若是有一個程序須要將其數據輸出到 OutputStream ,但咱們須要其返回字節數組的狀況下,ByteArrayOutputStream 能夠很方便完成任務。blog
很明顯 ByteArrayOutputStream 是用來緩存數據的,向它的內部自動增加的緩衝區寫入數據,再經過 output.toByteArray()
能夠從中提取數據。get
一個例子:input
public class ByteArray { public static void main(String[] args) throws IOException { ByteArrayOutputStream output = new ByteArrayOutputStream(); output.write("Hello ByteArray".getBytes()); // 只需調用方法 toByteArray(),全部寫入的數據都以數組形式返回。 byte[] bytes = output.toByteArray(); InputStream input = new ByteArrayInputStream(bytes); try { int data = input.read(); while (data != -1) { System.out.print((char) data); data = input.read(); } System.out.println(); } catch ( IOException e) { e.printStackTrace(); } } }