เราจำเป็นต้องรู้ว่านอกเหนือจาก ไฟล์ แล้ว ต้นทางและปลายทางของสตรีมยังสามารถเป็น หน่วยความจำ คอมพิวเตอร์ได้อีกด้วย
สตรีมอินพุตอาร์เรย์ไบต์ ByteArrayInputStream และสตรีมเอาต์พุตอาร์เรย์ไบต์ ByteArrayOutputStream ใช้อาร์เรย์ไบต์เป็นแหล่งที่มาและปลายทางของสตรีมตามลำดับ
ByteArrayInputStream(ไบต์[]buf);ByteArrayInputStream(ไบต์[]buf,intoffset,intlength);
แหล่งที่มาของสตรีมอาร์เรย์ไบต์ที่สร้างโดยตัวสร้างตัวแรกคือหน่วยไบต์ทั้งหมดของอาร์เรย์ที่ระบุโดยพารามิเตอร์ buf แหล่งที่มาของสตรีมอาร์เรย์ไบต์ที่สร้างโดยตัวสร้างที่สองคืออาร์เรย์ที่ระบุโดย buf ซึ่งเรียงลำดับจากออฟเซ็ต หน่วยไบต์ความยาว
สตรีมอินพุตอาร์เรย์ไบต์เรียก public int read(); วิธีการสามารถอ่านไบต์จากแหล่งที่มาตามลำดับ และวิธีการส่งคืนค่าไบต์ที่อ่าน; len) วิธีการสามารถอ่านจำนวนไบต์ที่ระบุโดยพารามิเตอร์ len จากแหล่งที่มาและจัดเก็บไบต์ที่อ่านลงในอาร์เรย์ที่ระบุโดยพารามิเตอร์ b พารามิเตอร์ off ระบุตำแหน่งเริ่มต้นของอาร์เรย์ b เพื่อจัดเก็บไบต์ที่อ่าน method จะส่งคืนจำนวนไบต์ที่อ่านจริง ถ้าไม่มีการอ่านไบต์ เมธอด read จะคืนค่า -1
ByteArrayOutputStream();ByteArrayOutputStream(ขนาดเต็ม);
สตรีมเอาท์พุตอาร์เรย์ไบต์ที่สร้างโดยคอนสตรัคเตอร์ตัวแรกชี้ไปที่บัฟเฟอร์ที่มีขนาดเริ่มต้น 32 ไบต์ หากจำนวนไบต์ที่สตรีมเอาต์พุตเขียนไปยังบัฟเฟอร์มากกว่าบัฟเฟอร์ ความจุของบัฟเฟอร์จะเพิ่มขึ้นโดยอัตโนมัติ
ขนาดเริ่มต้นของบัฟเฟอร์ที่ชี้ไปโดยสตรีมเอาต์พุตอาร์เรย์ไบต์ที่สร้างโดยตัวสร้างที่สองจะถูกระบุโดยขนาดพารามิเตอร์ หากจำนวนไบต์ที่สตรีมเอาต์พุตเขียนไปยังบัฟเฟอร์มากกว่าบัฟเฟอร์ ความจุของบัฟเฟอร์จะโดยอัตโนมัติ เพิ่มขึ้น.
สตรีมเอาต์พุตอาร์เรย์ไบต์เรียก public void write (int b) วิธีการสามารถเขียนไบต์ไปยังบัฟเฟอร์ตามลำดับ วิธีการเรียก public void write (ไบต์ [] b, int off, int len); ในไบต์ที่ระบุจะถูกเขียนลงในบัฟเฟอร์ตามลำดับและพารามิเตอร์ off ระบุตำแหน่งเริ่มต้นของไบต์ที่เขียนจาก b; การเรียกไบต์สาธารณะ[] toByteArray(); วิธีการสามารถส่งคืนสตรีมเอาต์พุตทั้งหมดที่เขียนลงในบัฟเฟอร์ .
ที่สอดคล้องกับสตรีมอาร์เรย์อักขระคือคลาส CharArrayReader สตรีมอาร์เรย์อักขระและคลาส CharArrayWriter สตรีมอาร์เรย์อักขระใช้อาร์เรย์อักขระเป็นแหล่งที่มาและปลายทางของสตรีมตามลำดับ
ตัวอย่างเช่น ใช้อาร์เรย์สตรีมเพื่อเขียน "เทศกาลไหว้พระจันทร์" และ "เทศกาลไหว้พระจันทร์แห่งความสุข" ลงในหน่วยความจำ (บัฟเฟอร์ของสตรีมเอาท์พุต) จากนั้นอ่านข้อมูลที่เขียนจากหน่วยความจำ:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();ไบต์[]byteContent=กลางฤดูใบไม้ร่วงเทศกาล.getBytes();o utByte.write(byteContent);ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);S system.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=สุขสันต์เทศกาลกลางฤดูใบไม้ร่วง.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newChar ArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);System.out.println(newString(backChar));}catch(IOExceptionexp){} }}