操作字節(jié)數(shù)組的流對(duì)象赃磨。
ByteArrayInputStream:在構(gòu)造的時(shí)候,需要接收數(shù)據(jù)源,而且數(shù)據(jù)源是一個(gè)字節(jié)數(shù)組舀武。
ByteArrayOutputStream:在構(gòu)造的時(shí)候,不用定義數(shù)據(jù)目的离斩,因?yàn)樵搶?duì)象中已經(jīng)內(nèi)部封裝了可變長(zhǎng)度的字節(jié)數(shù)組银舱。
這就是數(shù)據(jù)目的地。
因?yàn)檫@兩個(gè)流對(duì)象都操作的數(shù)組跛梗,并沒(méi)有使用系統(tǒng)資源寻馏。
所以,不用進(jìn)行close關(guān)閉核偿。
在流操作規(guī)律講解
源設(shè)備:
鍵盤 System.in 硬盤 FileStream 內(nèi)存 ArrayStream
目的設(shè)備:
控制臺(tái) System.out 硬盤 FileStream 內(nèi)存 ArrayStream
用流的讀寫思想來(lái)操作數(shù)據(jù)诚欠。
import java.io.*;
class ByteArrayStream
{
public static void main(String[] args)
{
//數(shù)據(jù)源
ByteArrayInputStream bis = new ByteArrayInputStream("ABCXML".getBytes());
//數(shù)據(jù)目的
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int by = 0;
while ((by=bis.read())!=-1)
{
bos.write(by);
}
System.out.println(bos.size());
System.out.println(bos.toString());
// bos.writeTo(new FileOutputStream("a.txt"));
}
}