Java FileInputStream (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java FileInputStream dan metodenya dengan bantuan contoh.

The FileInputStreamkelas dari java.iopaket dapat digunakan untuk membaca data (dalam byte) dari file.

Ini memperluas InputStreamkelas abstrak.

Sebelum kita mempelajarinya FileInputStream, pastikan untuk mengetahui tentang File Java.

Buat FileInputStream

Untuk membuat aliran input file, kita harus mengimpor java.io.FileInputStreampaket terlebih dahulu. Setelah kami mengimpor paket, berikut adalah cara membuat aliran input file di Java.

1. Menggunakan jalur ke file

 FileInputStream input = new FileInputStream(stringPath); 

Di sini, kami telah membuat aliran input yang akan ditautkan ke file yang ditentukan oleh jalur.

2. Menggunakan objek file

 FileInputStream input = new FileInputStream(File fileObject); 

Di sini, kami telah membuat aliran input yang akan ditautkan ke file yang ditentukan oleh fileObject.

Metode FileInputStream

The FileInputStreamkelas menyediakan implementasi untuk metode yang berbeda hadir di InputStreamkelas.

read () Metode

  • read() - membaca satu byte dari file
  • read(byte() array) - membaca byte dari file dan menyimpannya dalam array yang ditentukan
  • read(byte() array, int start, int length) - membaca jumlah byte yang sama dengan panjang dari file dan menyimpannya dalam array yang ditentukan mulai dari posisi awal

Misalkan kita memiliki file bernama input.txt dengan konten berikut.

 This is a line of text inside the file. 

Mari kita coba membaca file 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(); ) ) ) 

Keluaran

 Data dalam file: Ini adalah baris teks di dalam file. 

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

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

Untuk membaca data dari file, kami telah menggunakan read()metode di dalam while loop.

tersedia () Metode

Untuk mendapatkan jumlah byte yang tersedia, kita bisa menggunakan available()metode. 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(); ) ) ) 

Keluaran

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

Dalam contoh di atas,

  1. Kami pertama kali menggunakan available()metode ini untuk memeriksa jumlah byte yang tersedia dalam aliran input file.
  2. Kami kemudian menggunakan read()metode ini 3 kali untuk membaca 3 byte dari aliran input file.
  3. Sekarang, setelah membaca byte, kami kembali memeriksa byte yang tersedia. Kali ini byte yang tersedia berkurang 3.

lewati () Metode

Untuk membuang dan melewatkan jumlah byte yang ditentukan, kita dapat menggunakan skip()metode ini. 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(); ) ) ) 

Keluaran

 Input Stream setelah melewati 5 byte: adalah baris teks di dalam file. 

Dalam contoh di atas, kami telah menggunakan skip()metode untuk melewati 5 byte data dari aliran input file. Oleh karena itu, byte yang mewakili teks "Ini" tidak dibaca dari aliran input.

close () Metode

Untuk menutup aliran input file, kita dapat menggunakan close()metode. Setelah close()metode dipanggil, kita tidak dapat menggunakan aliran input untuk membaca data.

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

Metode Lain FileInputStream

Metode Deskripsi
finalize() memastikan bahwa close()metode tersebut dipanggil
getChannel() mengembalikan objek yang FileChannelterkait dengan aliran input
getFD() mengembalikan deskriptor file yang terkait dengan aliran input
mark() tandai posisi dalam aliran input yang datanya telah dibaca
reset() mengembalikan kontrol ke titik dalam aliran input tempat tanda ditetapkan

Untuk mempelajari lebih lanjut, kunjungi Java FileInputStream (dokumentasi resmi Java).

Artikel yang menarik...