علينا أن نعرف أنه بالإضافة إلى الملفات ، يمكن أن يكون مصدر ووجهة التدفق أيضًا ذاكرة الكمبيوتر.
يستخدم دفق إدخال صفيف البايت ByteArrayInputStream ودفق إخراج صفيف البايت ByteArrayOutputStream صفائف البايت كمصدر ووجهة للدفق على التوالي.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
مصدر دفق مصفوفة البايت الذي أنشأه المُنشئ الأول هو جميع وحدات البايت للمصفوفة المحددة بواسطة المعلمة buf؛ مصدر دفق مصفوفة البايت الذي أنشأه المُنشئ الثاني هو المصفوفة المحددة بواسطة buf، مأخوذة بالترتيب من الإزاحة. وحدات بايت الطول
يستدعي دفق إدخال صفيف البايت public int read(); يمكن للطريقة قراءة البايت من المصدر بشكل تسلسلي، وتقوم الطريقة بإرجاع قيمة البايت المقروءة؛ len); يمكن للطريقة قراءة عدد البايتات المحددة بواسطة المعلمة len من المصدر وتخزين بايتات القراءة في المصفوفة المحددة بواسطة المعلمة b. تحدد المعلمة off موضع البداية للصفيف b لتخزين بايتات القراءة تُرجع الطريقة العدد الفعلي للبايتات المقروءة، وإذا لم تتم قراءة أي بايت، تُرجع طريقة القراءة -1.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
يشير دفق إخراج صفيف البايت الذي أنشأه المُنشئ الأول إلى مخزن مؤقت بحجم افتراضي يبلغ 32 بايت. إذا كان عدد البايتات المكتوبة بواسطة دفق الإخراج إلى المخزن المؤقت أكبر من المخزن المؤقت، فستزداد سعة المخزن المؤقت تلقائيًا.
يتم تحديد الحجم الأولي للمخزن المؤقت الذي يشير إليه دفق إخراج صفيف البايت الذي أنشأه المُنشئ الثاني بواسطة حجم المعلمة. إذا كان عدد البايتات المكتوبة بواسطة دفق الإخراج إلى المخزن المؤقت أكبر من المخزن المؤقت، فستكون سعة المخزن المؤقت تلقائيًا يزيد.
يستدعي دفق إخراج صفيف البايت public void write(int b); في يتم كتابة بايتات len المحددة في المخزن المؤقت بشكل تسلسلي، وتحدد المعلمة off موضع البداية للبايتات المكتوبة من b؛ ويمكن أن يؤدي استدعاء أسلوب البايت العام إلى ByteArray () إلى إرجاع جميع تدفقات الإخراج المكتوبة إلى المخزن المؤقت .
يتوافق دفق مصفوفة البايت مع فئة دفق مصفوفة الأحرف CharArrayReader وفئة CharArrayWriter. يستخدم دفق مصفوفة الأحرف مصفوفات الأحرف كمصدر ووجهة للدفق على التوالي.
على سبيل المثال، استخدم دفق مصفوفة لكتابة "مهرجان منتصف الخريف" و"مهرجان منتصف الخريف السعيد" في الذاكرة (المخزن المؤقت لتدفق الإخراج)، ثم اقرأ البيانات المكتوبة من الذاكرة:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.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){} }}