Perlu kita ketahui bahwa selain file , sumber dan tujuan stream juga bisa berupa memori komputer.
Aliran masukan larik byte ByteArrayInputStream dan aliran keluaran larik byte ByteArrayOutputStream masing-masing menggunakan larik byte sebagai sumber dan tujuan aliran.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
Sumber aliran array byte yang dibangun oleh konstruktor pertama adalah semua unit byte dari array yang ditentukan oleh parameter buf; sumber aliran array byte yang dibangun oleh konstruktor kedua adalah array yang ditentukan oleh buf, diambil secara berurutan dari offset. satuan byte panjang.
Aliran masukan array byte memanggil public int read(); metode ini dapat membaca byte dari sumber secara berurutan, dan metode mengembalikan nilai byte baca; memanggil metode public int read(byte[] b,int off,int len ); dapat secara berurutan membaca jumlah byte yang ditentukan oleh parameter len dari sumber, dan menyimpan byte yang dibaca ke dalam array yang ditentukan oleh parameter b. Parameter off menentukan posisi awal array b untuk menyimpan byte yang dibaca byte yang dibaca. Jika tidak ada byte yang dibaca, metode baca mengembalikan -1.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
Aliran output array byte yang dibangun oleh konstruktor pertama menunjuk ke buffer dengan ukuran default 32 byte. Jika jumlah byte yang ditulis oleh aliran output ke buffer lebih besar dari buffer, kapasitas buffer akan meningkat secara otomatis.
Ukuran awal buffer yang ditunjukkan oleh aliran keluaran array byte yang dibangun oleh konstruktor kedua ditentukan oleh ukuran parameter. Jika jumlah byte yang ditulis oleh aliran keluaran ke buffer lebih besar dari buffer, kapasitas buffer akan otomatis meningkatkan.
Aliran keluaran array byte memanggil public void write(int b); metode ini dapat menulis byte ke buffer secara berurutan; metode ini memanggil public void write(byte[] b, int off, int len); di Byte len yang ditentukan ditulis ke dalam buffer secara berurutan, dan parameter off menentukan posisi awal byte yang ditulis dari b; memanggil metode byte[] toByteArray(); .
Sesuai dengan aliran array byte adalah aliran array karakter kelas CharArrayReader dan kelas CharArrayWriter. Aliran array karakter menggunakan array karakter sebagai sumber dan tujuan aliran masing-masing.
Misalnya, gunakan aliran array untuk menulis "festival pertengahan musim gugur" dan "Festival Pertengahan Musim Gugur" ke memori (buffer aliran keluaran), lalu membaca data tertulis dari memori:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){coba{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.getBytes();outByte.write(byteContent);ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray ());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);System.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=Mid -Festival Musim Gugur Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System .out.println(newString(backChar));}menangkap(IOExceptionexp){}}}