Di bagian sebelumnya, kita mempelajari cara membuat aliran masukan byte file. Di bagian ini, kita melanjutkan mempelajari cara menggunakan aliran masukan untuk membaca byte dan menutup aliran.
Tujuan dari aliran input adalah untuk menyediakan saluran untuk membaca data dari sumber. Program dapat membaca data dari sumber melalui saluran ini. Aliran byte file dapat memanggil metode baca yang diwarisi dari kelas induk untuk membaca file secara berurutan , selama aliran tidak ditutup. Setiap panggilan ke metode baca secara berurutan membaca sisa konten file hingga akhir file atau aliran input byte file ditutup.
Metode baca aliran masukan byte membaca data di sumber dalam byte.
Aliran input memanggil metode ini untuk membaca satu byte data dari sumber. Metode ini mengembalikan nilai byte (bilangan bulat antara 0 dan 255). Jika byte tidak dibaca, ia mengembalikan -1.
Aliran input memanggil metode ini untuk mencoba membaca b.length byte dari sumber ke dalam array byte b, dan mengembalikan jumlah byte sebenarnya yang dibaca. Jika akhir file tercapai, -1 dikembalikan.
Aliran input memanggil metode ini untuk mencoba membaca byte len dari sumber ke dalam array byte b, dan mengembalikan jumlah byte aktual yang dibaca. Jika akhir file tercapai, -1 dikembalikan, dan parameter off menentukan posisi dalam array byte untuk mulai menyimpan data yang dibaca.
Catatan : Aliran FileInputStream membaca file secara berurutan. Selama aliran tidak ditutup, setiap panggilan ke metode baca membaca sisa konten sumber secara berurutan hingga akhir sumber atau aliran ditutup.
Semua aliran masukan menyediakan metode penutupan close() . Meskipun semua aliran terbuka akan ditutup secara otomatis saat program berakhir, tetap merupakan kebiasaan yang baik untuk menutup aliran terbuka secara eksplisit setelah program selesai menggunakan aliran tersebut. Jika aliran terbuka tidak ditutup, program lain mungkin tidak diperbolehkan memanipulasi sumber daya yang digunakan oleh aliran tersebut.
Misalnya:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){intn=-1;byte[]a=newbyte[100];coba{Filef=newFile(Main.java);InputStreamin=newFileInputStream(f); while( (n=in.read(a,0,100))!=-1){Strings=newString(a,0,n);System.out.print(s);}in.close();}catch(IOExceptione) {Sistem.keluar.println(FilereadError+e);}}}
Catatan : Saat mengonversi byte baca menjadi string, byte baca sebenarnya harus diubah menjadi string, seperti pada contoh di atas:
String=String baru(a,0,n);
tidak dapat ditulis sebagai:
String=String baru(a,0,100);