1. 程式人生 > >Java中io流的學習(九)ByteArrayInputStream和ByteArrayOutputStream

Java中io流的學習(九)ByteArrayInputStream和ByteArrayOutputStream

ByteArrayInputStream(記憶體輸入流)繼承於InputStream,ByteArrayOutputStream(記憶體輸出流)繼承於OutputStream。記憶體流是關不掉的,一般用來存放一些臨時性的資料,理論值是記憶體大小。

常用的方法是:read(),一系列read方法,參照API,只是讀取方式不同,一個一個位元組讀取,或者多個位元組多個位元組讀取;write(),一系列write方法,參照API理解;toByteArray(),建立一個新分配的byte陣列;toString(String charsetName),使用指定的 charsetName,通過解碼位元組將緩衝區內容轉換為字串。

下面通過例項程式碼來對其進行學習:

①從記憶體流讀出資訊,建立記憶體流時,就把資料存入到記憶體中

ByteArrayInputStream bais = new ByteArrayInputStream("我是記憶體流測試".getBytes());
byte[] b = new byte[1024];
int len;
while((len = bais.read(b)) != -1){
	System.out.println(new String(b, 0, len));
}

②將資料寫入記憶體流

ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write("我是記憶體流測試".getBytes());
//輸出方式一
byte[] b = baos.toByteArray();
System.out.println(new String(b));
//輸出方式二
String s = baos.toString();
System.out.println(s);