วิธีการอ่านและเขียนของอินพุตไบต์ของไฟล์และสตรีมเอาต์พุตใช้อาร์เรย์ไบต์เพื่ออ่านและเขียนข้อมูล กล่าวคือ เพื่อประมวลผลข้อมูลในหน่วยไบต์ ดังนั้นกระแสข้อมูลไบต์จึงทำงานได้ไม่ดีกับอักขระ Unicode ตัวอย่างเช่น อักขระภาษาจีนมีขนาด 2 ไบต์ในไฟล์ หากใช้สตรีมไบต์ "อักขระที่อ่านไม่ออก" จะปรากฏขึ้นหากอ่านไม่ถูกต้อง
ที่สอดคล้องกับสตรีมไบต์ FileInputStream และ FileOutputStream คือสตรีมอักขระ FileReader และ FileWriter (สตรีมอินพุตและเอาต์พุตอักขระไฟล์) FileReader และ FileWriter เป็นคลาสย่อยของ Reader และ Writer ตามลำดับ และวิธีการสร้างคือ:
FileReader (ชื่อไฟล์สตริง); FileReader (ชื่อไฟล์); Fi1eWriter (ชื่อไฟล์สตริง); FileWriter (ชื่อไฟล์); FileWriter (ชื่อไฟล์สตริง, บูลีนผนวก); FileWriter (ชื่อไฟล์, บูลีนผนวก);
วิธีการอ่านและเขียนของสตรีมอินพุตอักขระและสตรีมเอาต์พุตใช้อาร์เรย์อักขระเพื่ออ่านและเขียนข้อมูล กล่าวคือ เพื่อประมวลผลข้อมูลที่มีอักขระเป็นหน่วยพื้นฐาน
ตัวอย่างเช่น:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){FilesourceFile=newFile(a.txt);//ไฟล์อ่าน FiletargetFile=newFile(b.txt);//ไฟล์ที่เขียน charc[]=newchar [19 ];//char array try{Writerout=newFileWriter(targetFile,true);//กระแสเอาต์พุตที่ชี้ไปยังปลายทาง Readerin=newFileReader(sourceFile);//กระแสอินพุตที่ชี้ไปยังต้นทาง intn=-1;ในขณะที่(( n= in.read(c))!=-1){out.write(c,0,n);}out.flush();out.close();}catch(IOExceptione){System.out.println (ข้อผิดพลาด +อี);}}}
หมายเหตุ : สำหรับสตรีม Writer วิธีเขียนจะเขียนข้อมูลลงในบัฟเฟอร์ก่อน เมื่อใดก็ตามที่บัฟเฟอร์ล้น เนื้อหาของบัฟเฟอร์จะถูกเขียนไปยังปลายทางโดยอัตโนมัติ หากสตรีมถูกปิด เนื้อหาของบัฟเฟอร์จะถูกเขียนไปยังปลายทางทันที . สตรีมเรียกเมธอด flush() เพื่อล้างบัฟเฟอร์ปัจจุบันทันที นั่นคือเพื่อเขียนเนื้อหาของบัฟเฟอร์ปัจจุบันไปยังปลายทาง