logo

دفق الأحرف مقابل دفق البايت في Java

الدفق هو تدفق مستمر للبيانات. في Java، يتم استخدام تدفقات الإدخال/الإخراج للقراءة من مصادر الإدخال أو الكتابة إلى وجهات الإخراج مثل الملفات. أنها توفر وسيلة للوصول إلى البيانات بشكل تسلسلي. تتضمن الحزمة java.io فئات للتعامل مع تدفقات البايتات وتدفقات الأحرف وأيضًا للتحويل بينهما.

  • دفق الإدخال: يقرأ البيانات من المصدر. 
  • تيار الإخراج: يكتب البيانات إلى الوجهة. 

متى يتم استخدام تدفق الأحرف عبر تدفق البايت:

يتم تخزين الأحرف في Java باستخدام اصطلاحات Unicode. يعد تدفق الأحرف مفيدًا عندما نريد معالجة الملفات النصية. يمكن معالجة هذه الملفات النصية حرفًا بحرف. حجم الحرف هو عادة 16 بت.



متى يتم استخدام تدفق البايت عبر تدفق الأحرف:

ج # التاريخ

بايت الموجهة يقرأ بايت بايت. يعد تدفق البايت مناسبًا لمعالجة البيانات الأولية مثل الملفات الثنائية.

النقاط الأساسية أثناء استخدام والتعامل مع أي من التدفقات المذكورة أعلاه:

  • تنتهي فئات دفق الأحرف عادةً بـ Reader/Writer بينما تنتهي فئات دفق البايت بـ InputStream/OutputStream.
  • تستخدم رموز الأمثلة في هذه المقالة التدفقات غير المخزنة والتي تكون أقل كفاءة. للحصول على أداء أفضل، نقوم عادة بتغليفها باستخدام BufferedReader/BufferedWriter (تدفقات الأحرف) أو BufferedInputStream/BufferedOutputStream (تدفقات البايت).
  • قم دائمًا بإغلاق التدفقات بعد الاستخدام لتحرير الموارد ومنع الأخطاء.
  • قد لا تعمل الرموز المذكورة أعلاه في المترجمين عبر الإنترنت لأن الملفات قد لا تكون موجودة.

تيار الشخصية

يتم تخزين الأحرف في Java باستخدام اصطلاحات Unicode. يسمح لنا دفق الأحرف تلقائيًا بقراءة/كتابة البيانات حرفًا تلو الآخر. على سبيل المثال، FileReader وFileWriter عبارة عن تدفقات أحرف تستخدم للقراءة من المصدر والكتابة إلى الوجهة.

غير_unicode_bytes' title=تيارات الشخصية

مثال

Java
import java.io.*; public class GFG {  public static void main(String[] args)  throws IOException  {  // Initially assigning null as we have not read anything  FileReader sourceStream = null;  try {  // Reading from file  sourceStream = new FileReader('/Users/mayanksolanki/Desktop/demo.rtf');  // Reading sourcefile and writing content to target file character by character.  int temp;  // If there is content inside file than read  while ((temp = sourceStream.read()) != -1)  System.out.println((char)temp);    System.out.print('Program successfully executed');  }    finally {  if (sourceStream != null)  sourceStream.close();  }  } } 

الإخراج:

يكتب المحتوى إلى الملف الهدف حرفًا بحرف

تم تنفيذ البرنامج بنجاح

بايت ستريم

دفق البايت في Java هو دفق يعالج إدخال وإخراج البيانات الثنائية الأولية ذات 8 بت. يستخدم بشكل أساسي لقراءة وكتابة البيانات غير النصية مثل الصور والصوت والفيديو أو أي ملف ثنائي. على سبيل المثال FileInputStream يستخدم للقراءة من المصدر وFileOutputStream للكتابة إلى الوجهة.

نقل وسائل الإعلام

مثال:

Java
import java.io.*; public class GFG {  public static void main(String[] args)  throws IOException  {  // Initially assigning null ot objects for reading and writing to file  FileInputStream sourceStream = null;  FileOutputStream targetStream = null;  try {  // Passing the files via local directory  sourceStream = new FileInputStream('/Users/mayanksolanki/Desktop/demo.rtf');  targetStream = new FileOutputStream('/Users/mayanksolanki/Desktop/democopy.rtf');  // Reading source file and writing content to file byte by byte  int temp;  // If there is content inside file than read  while ((temp = sourceStream.read()) != -1)  targetStream.write((byte)temp);    System.out.print('Program successfully executed');  }  // finally block that executes for sure where we are closing file connections to avoid memory leakage  finally {  if (sourceStream != null)  sourceStream.close();  if (targetStream != null)  targetStream.close();  }  } } 

الإخراج:

تم تنفيذ البرنامج بنجاح

دفق الأحرف مقابل اختلافات دفق البايت

وجهتيار الشخصيةبايت ستريم
تمت معالجة نوع البياناتأحرف Unicode ذات 16 بت (نص)بيانات أولية 8 بت (ثنائية)
تنتهي الفصول بالقارئ / الكاتبتيار الإدخال / تيار الإخراج
مناسبة لملفات نصية بيانات Unicodeصور ملفات الصوت والفيديو الثنائية
تحويلتحويل البايتات إلى أحرف تلقائيالا يوجد تحويل يعمل مع وحدات البايت الأولية
أمثلةقارئ الملفات، كاتب الملفاتFileInputStream FileOutputStream

مقالة ذات صلة

  • Java IO - الإدخال/الإخراج في Java مع أمثلة