Java FileInputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar mengenai Java FileInputStream dan kaedahnya dengan bantuan contoh.

The FileInputStreamgolongan orang java.iopakej boleh digunakan untuk membaca data (dalam bait) dari fail.

Ia meluaskan InputStreamkelas abstrak.

Sebelum kita mengetahui FileInputStream, pastikan untuk mengetahui tentang Java Files.

Buat FileInputStream

Untuk membuat aliran input fail, kita mesti mengimport java.io.FileInputStreampakej terlebih dahulu. Setelah kami mengimport pakej, berikut adalah bagaimana kita dapat membuat aliran input fail di Java.

1. Menggunakan jalan ke fail

 FileInputStream input = new FileInputStream(stringPath); 

Di sini, kami telah membuat aliran input yang akan dihubungkan ke fail yang ditentukan oleh jalan.

2. Menggunakan objek fail

 FileInputStream input = new FileInputStream(File fileObject); 

Di sini, kami telah membuat aliran input yang akan dihubungkan ke fail yang ditentukan oleh fileObject.

Kaedah FileInputStream

The FileInputStreamkelas menyediakan pelaksanaan untuk kaedah yang berbeza hadir dalam InputStreamkelas.

baca () Kaedah

  • read() - membaca satu bait dari fail
  • read(byte() array) - membaca bait dari fail dan menyimpan dalam susunan yang ditentukan
  • read(byte() array, int start, int length) - membaca bilangan bait sama dengan panjang dari fail dan menyimpan dalam susunan yang ditentukan bermula dari kedudukan awal

Katakan kita mempunyai fail bernama input.txt dengan kandungan berikut.

 This is a line of text inside the file. 

Mari cuba baca fail ini menggunakan FileInputStream.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Pengeluaran

 Data dalam fail: Ini adalah sebaris teks di dalam fail. 

Dalam contoh di atas, kami telah membuat aliran input fail bernama input. Aliran input dihubungkan dengan fail input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Untuk membaca data dari fail, kami telah menggunakan read()kaedah di dalam loop sementara.

tersedia () Kaedah

Untuk mendapatkan jumlah bait yang ada, kita boleh menggunakan available()kaedahnya. Sebagai contoh,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Pengeluaran

 Byte yang tersedia pada awal: 39 Byte yang tersedia pada akhir: 36 

Dalam contoh di atas,

  1. Mula-mula kami menggunakan available()kaedah untuk memeriksa jumlah bait yang tersedia dalam aliran input fail.
  2. Kami kemudian telah menggunakan read()kaedah 3 kali untuk membaca 3 bait dari aliran input fail.
  3. Sekarang, setelah membaca bait kami sekali lagi telah memeriksa bait yang ada. Kali ini bait yang tersedia menurun sebanyak 3.

melangkau () Kaedah

Untuk membuang dan melangkau bilangan bait yang ditentukan, kita boleh menggunakan skip()kaedahnya. Sebagai contoh,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Pengeluaran

 Input Stream setelah melangkau 5 bait: adalah sebaris teks di dalam fail. 

Dalam contoh di atas, kami telah menggunakan skip()kaedah untuk melangkau 5 bait data dari aliran input fail. Oleh itu, bait yang mewakili teks "Ini" tidak dibaca dari aliran input.

tutup () Kaedah

Untuk menutup aliran input fail, kita dapat menggunakan close()kaedahnya. Setelah close()kaedah dipanggil, kami tidak dapat menggunakan aliran input untuk membaca data.

Dalam semua contoh di atas, kami telah menggunakan close()kaedah untuk menutup aliran input fail.

Kaedah Lain FileInputStream

Kaedah Penerangan
finalize() memastikan bahawa close()kaedah itu disebut
getChannel() mengembalikan objek yang FileChannelberkaitan dengan aliran input
getFD() mengembalikan deskriptor fail yang berkaitan dengan aliran input
mark() tandakan kedudukan dalam aliran input sehingga data telah dibaca
reset() mengembalikan kawalan ke titik dalam aliran input di mana tanda itu ditetapkan

Untuk mengetahui lebih lanjut, kunjungi Java FileInputStream (dokumentasi Java rasmi).

Artikel menarik...