Metode baca dan tulis aliran input dan output file byte menggunakan array byte untuk membaca dan menulis data, yaitu memproses data dalam byte. Oleh karena itu, aliran byte tidak beroperasi dengan baik dengan karakter Unicode . Misalnya, karakter Cina menempati 2 byte dalam file. Jika aliran byte digunakan, "karakter kacau" akan muncul jika tidak dibaca dengan benar.
Sesuai dengan aliran byte FileInputStream dan FileOutputStream adalah aliran karakter FileReader dan FileWriter (aliran input dan output karakter file, FileReader dan FileWriter masing-masing merupakan subkelas dari Reader dan Writer, dan metode konstruksinya adalah:
FileReader(Stringfilename);FileReader(Filefilename);Fi1eWriter(Stringfilename);FileWriter(Filefilename);FileWriter(Stringfilename,booleanappend);FileWriter(Filefilename,booleanappend);
Metode baca dan tulis aliran masukan karakter dan aliran keluaran menggunakan array karakter untuk membaca dan menulis data, yaitu memproses data dengan karakter sebagai unit dasarnya.
Misalnya:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){FilesourceFile=newFile(a.txt);//File terbaca FiletargetFile=newFile(b.txt);//File tertulis charc[]=newchar [19 ];//char array try{Writerout=newFileWriter(targetFile,true);//aliran keluaran menunjuk ke tujuan Readerin=newFileReader(sourceFile);//aliran masukan menunjuk ke sumber intn=-1;sementara(( n= masuk.baca(c))!=-1){keluar.tulis(c,0,n);}keluar.flush();keluar.close();}catch(IOExceptione){System.out.println (Kesalahan +e);}}}
Catatan : Untuk aliran Writer, metode tulis terlebih dahulu menulis data ke buffer. Setiap kali buffer meluap, isi buffer secara otomatis ditulis ke tujuan. Jika aliran ditutup, isi buffer akan segera ditulis ke tujuan . Aliran memanggil metode flush() untuk segera membersihkan buffer saat ini, yaitu menulis konten buffer saat ini ke tujuan.