تستخدم طرق القراءة والكتابة لدفق إدخال وإخراج بايت الملف صفائف البايت لقراءة البيانات وكتابتها، أي معالجة البيانات بالبايت. لذلك، لا تعمل تدفقات البايت بشكل جيد مع أحرف Unicode . على سبيل المثال، يحتل الحرف الصيني 2 بايت في الملف إذا تم استخدام دفق بايت، فسوف تظهر "أحرف مشوهة" إذا تمت قراءتها بشكل غير صحيح.
المقابلة لتدفقات البايت FileInputStream وFileOutputStream هي تدفقات الأحرف FileReader وFileWriter (تدفقات إدخال وإخراج أحرف الملف FileReader وFileWriter هي فئات فرعية من Reader وWriter على التوالي، وطرق البناء الخاصة بها هي:
FileReader(Stringfilename);FileReader(Filename);Fi1eWriter(Stringfilename);FileWriter(Filefilename);FileWriter(Stringfilename,booleanappend);FileWriter(Filefilename,booleanappend);
تستخدم طرق القراءة والكتابة لتدفقات إدخال الأحرف وتدفقات الإخراج صفائف الأحرف لقراءة البيانات وكتابتها، أي معالجة البيانات باستخدام الأحرف كوحدة أساسية.
على سبيل المثال:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){FilesourceFile=newFile(a.txt);// قراءة الملف FiletargetFile=newFile(b.txt);// الملف المكتوب Charc[]=newchar [19 ];// مصفوفة char حاول {Writerout=newFileWriter(targetFile,true);// دفق الإخراج يشير إلى الوجهة Readerin=newFileReader(sourceFile);// دفق الإدخال الذي يشير إلى المصدر intn=-1;while(( n= in.read(c))!=-1){out.write(c,0,n);}out.flush();out. Close();}catch(IOExceptione){System.out.println (خطأ +ه)؛}}}
ملاحظة : بالنسبة لتدفقات الكاتب، تقوم طريقة الكتابة أولاً بكتابة البيانات إلى المخزن المؤقت عندما يفيض المخزن المؤقت، تتم كتابة محتويات المخزن المؤقت تلقائيًا إلى الوجهة . يستدعي الدفق طريقة Flush () لمسح المخزن المؤقت الحالي على الفور، أي كتابة محتويات المخزن المؤقت الحالي إلى الوجهة.