English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المثال، سنتعلم كيفية تحويل تدفق الإدخال إلى مصفوفة من الأكواد في Java.
لفهم هذا المثال، يجب أن تكون على علم بما يليبرمجة Javaالموضوع:
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main { public static void main(String args[]) { try { //إنشاء تدفق إدخال byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("تدفق الإدخال: " + stream); //تحويل تدفق الإدخال إلى مصفوفة من البايتات byte[] array = stream.readAllBytes(); System.out.println("حزمةُ البايت: " + Arrays.toString(array)) stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
نتائج الإخراج
تدفق الإدخال: java.io.ByteArrayInputStream@27082746 حزمةُ البايت: [1, 2, 3, 4]
في المثال السابق، قمنا بإنشاء تدفق إدخال يُدعى stream (InputStream). لاحظ هذا السطر،
byte[] array = stream.readAllBytes();
في هذا المثال، تُرجع طريقة readAllBytes() جميع البيانات من التدفق وتخزنها في مصفوفة من البايتات.
ملاحظة:لقد استخدمنا طريقة Arrays.toString() لتحويل المصفوفة بأكملها إلى سلسلة.
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main { public static void main(String args[]) { try { //إنشاء تدفق إدخال byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("تدفق الإدخال: " + stream); //إنشاء تدفق مخرج ByteArrayOutputStream output = new ByteArrayOutputStream(); //إنشاء مصفوفة من البايتات لتحديد تدفق الإدخال byte[] array = new byte[4]; int i; //قراءة جميع البيانات من تدفق الإدخال إلى المصفوفة while ((i = stream.read(array, 0, array.length)) != -1) { //كتابة جميع البيانات الموجودة في المصفوفة إلى التدفق output.write(array, 0, i); } byte[] data = output.toByteArray(); //تحويل تدفق الإدخال إلى مصفوفة من البايتات System.out.println("حزمةُ البايت: " + Arrays.toString(data)); stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
نتائج الإخراج
تدفق الإدخال: java.io.ByteArrayInputStream@27082746 مصفوفة Byte: [1, 2, 3, 4]
في المثال السابق، قمنا بإنشاء تدفق إدخال input من مصفوفة array. لاحظ التعبير
stream.read(array, 0, array.length)
في هذا المكان، يتم تخزين جميع العناصر في المصفوفة، تبدأ من مؤشر 0. ثم نحن نحفظ جميع عناصر المصفوفة إلى تدفق الإخراج التسمى output.
output.write(array, 0, i)
في النهاية، نحن نستدعي دالة toByteArray() من فئة ByteArrayOutputStream، لنحوّل تدفق الإخراج إلى مصفوفة تسمى data.