package io;
/*
* 作用:
* ByteArrayInputStream是将資料寫入到記憶體輸入流中,通過構造函數實作的,而用read()方法來讀取記憶體輸入流的資料
* ByteArrayOutputStream是将資料寫入到記憶體輸出流,通過write()方法實作的
*
* 我們可以這樣了解上面的過程,将程式和記憶體分為兩層。
* ByteArrayInputStream就是把程式這一層的資料儲存進記憶體,而通過read()将資料讀取出來
* 而ByteArrayOutputStream就是把它當做是記憶體的中的一個緩沖區,向其中寫入資料,緩沖區自動增長,
* 當寫入完成時可以從中提取資料。通過toByteArray()和toString()實作。
*
*
* */
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class ByteArrayInputStreamAndByteArrayOutputStream {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "周敬zhejianggongshang wangyi";
//ByteArrayInputStream記憶體輸入流,将資料寫入到記憶體中
ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());
//ByteArrayOutputStream記憶體輸出流,個人覺得它就是一個緩存器,從記憶體讀取到的資料寫入到在它的内部緩存區中
ByteArrayOutputStream out = new ByteArrayOutputStream();
int temp = 0;
while((temp=in.read())!= -1){ //将記憶體中的資料讀取出來,儲存在臨時變量temp中
out.write(temp); //将獲得到的資料寫入到記憶體輸出流對象out中
}
try {
in.close();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(out.toString());
}
}