- BufferedInputStream di Java
- Pembina
- Kaedah BufferedInputStream
- Contoh: Membaca data dari fail menggunakan Java BufferedInputStream
- Contoh: Baca panjang data tertentu dari fail
- Contoh: Kaedah Java BufferedInputStream tersedia ()
- Contoh: Kaedah langkau Java BufferedInputStream ()
BufferedInputStream adalah kelas di Java yang dapat kita gunakan untuk membaca data dari aliran file. Kita dapat menggunakan FileInputStream sebagai aliran input bersama dengan BufferedInputStream. Ia menggunakan konsep buffer di mana ia membuat array buffer setiap kali kita membuat BufferedInputStream. Setiap kali kita memanggil kaedah baca, ia membaca sekumpulan bait dari cakera dan menyimpannya dalam penyangga dalaman. Oleh itu ia membaca data dari penyangga yang mengurangkan panggilan ke cakera. Ini menjadikan prestasi lebih pantas.
Pembina
Berikut adalah pembina kelas BufferedInputStream di Java:
BufferedInputStream (InputStream adalah) | Membuat BufferedInputStream dan menyimpan aliran 'is' untuk kegunaan kemudian |
BufferedInputStream (InputStream adalah, ukuran int) | Membuat BufferedInputStream dengan ukuran yang ditentukan dan menyimpan aliran parameter 'is' untuk digunakan kemudian |
Kaedah BufferedInputStream
int tersedia () | Mengembalikan anggaran jumlah bait yang tersedia untuk dibaca |
batal tutup () | Menutup BufferedInputStream |
tanda kosong (int readLimit) | Menandakan kedudukan semasa untuk dibaca dari aliran input |
tanda boolean Disokong () | Memeriksa sama ada aliran menyokong kaedah mark () dan reset () |
int baca () | Membaca bait data dari aliran input |
int baca (bait [] b) | Membaca bait yang ditentukan dari array input |
int baca (bait [] b, int mati, int len) | Membaca byte data dari array bermula dari kedudukan mati yang ditentukan |
bait [] readAllBytes () | Membaca semua bait yang tinggal dari aliran input |
bait [] readNBytes (int len) | Membaca sehingga bilangan bait yang ditentukan |
int readNBytes (bait [] b, int mati, int len) | Membaca hingga panjang bait yang ditentukan dari tatasusunan bait bermula dari kedudukan mengimbangi. |
long skip (panjang n) | Slip atau buang bilangan bait yang ditentukan semasa operasi membaca |
batal skipNBytes (panjang n) | Melangkau atau membuang jumlah bait yang ditentukan semasa operasi membaca |
perpindahan panjang Ke (OutputStream out) | Membaca semua bait dari aliran input dan menulisnya ke aliran output yang ditentukan dalam urutan yang sama |
Contoh: Membaca data dari fail menggunakan Java BufferedInputStream
Contoh di bawah membaca kandungan fail sehingga kaedah read () mengembalikan -1 yang merupakan akhir fail. Ia menukar nilai integer ke watak dan kemudian mencetak maklumat. File input mengandungi informasi "Ini adalah contoh BufferedInputStream".
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public static void main(String[] args) throws FileNotFoundException { FileInputStream fi = new FileInputStream("InputFile.txt"); BufferedInputStream bi = new BufferedInputStream(fi); try { int i; while((i=bi.read()) != -1) { System.out.print((char)i); } bi.close(); fi.close(); } catch (IOException e) { e.printStackTrace(); } } } This is an example of BufferedInputStreamBerikut adalah contoh lain untuk membaca kandungan fail menggunakan kaedah yang ada. Kaedah yang tersedia mengembalikan nilai yang lebih besar daripada 0 jika terdapat lebih banyak bait untuk dibaca. Oleh itu menggunakan a sambil gelung, kita dapat membaca kandungan fail sehingga kaedah yang tersedia mengembalikan nilai negatif.
Contoh: Baca panjang data tertentu dari fail
Contoh di bawah menunjukkan cara membaca panjang data tertentu dari fail menggunakan read () kaedah dari kelas BufferedInputStream di Java. Di sini, kami hanya memperuntukkan 10 bait, di mana kita membaca 8 bait bermula dari kedudukan 0. Oleh itu ia hanya mencetak "Ini **" dengan mengisi baki 2 bait data dengan "*".
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class ReadFile { public static void main(String[] args) throws FileNotFoundException { FileInputStream fi = new FileInputStream("InputFile.txt"); BufferedInputStream bi = new BufferedInputStream(fi); try { byte[] b = new byte[10]; int a = bi.read(b, 0, 8); for(byte by : b) { char ch = (char)by; if(by == 0) ch = '*'; System.out.print(ch); } bi.close(); fi.close(); } catch (IOException e) { e.printStackTrace(); } } } This is **Contoh: Kaedah Java BufferedInputStream tersedia ()
Kaedah yang tersedia () dari kelas BufferedInputStream mengembalikan anggaran jumlah bait yang tinggal untuk dibaca dari aliran input. Pada mulanya, ia menyimpan jumlah bait yang ada sebelum operasi baca. Berdasarkan jumlah bait yang dibaca, ia mengembalikan anggaran jumlah bait yang tinggal untuk dibaca. Kita dapat memahami perkara ini dengan jelas dengan contoh di bawah.
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class CheckAvailableBytes { public static void main(String[] args) throws IOException { FileInputStream fi = new FileInputStream("InputFile.txt"); BufferedInputStream bi = new BufferedInputStream(fi); int a = 0; System.out.println("Available bytes before read operation: " + bi.available()); System.out.print((char)bi.read()); System.out.print((char)bi.read()); System.out.print((char)bi.read()); System.out.print((char)bi.read()); System.out.println("\nAvailable bytes after read operation: " + bi.available()); bi.close(); fi.close(); } } Available bytes before read operation: 41 This Available bytes after read operation: 37Contoh: Kaedah langkau Java BufferedInputStream ()
Contoh di bawah menunjukkan cara kerja kaedah skip () di kelas Java BufferedInputStream. Berdasarkan angka yang dilewatkan sebagai parameter dalam kaedah langkau (), ia membuang sebilangan besar bait untuk dibaca. Di sini, kami membuang 4 bait data pertama untuk dibaca dan terus membaca bait yang tinggal menggunakan kaedah read ().
Rujukan