java
Dalam tutorial ini, kita akan belajar tentang Java BufferedInputStream dan metodenya dengan bantuan contoh.
BufferedInputStream
kelas java.io
package digunakan dengan aliran input lain untuk membaca data (dalam byte) dengan lebih efisien.
Ini memperluas InputStream
kelas abstrak.
BufferedInputStream
mempertahankan buffer internal sebesar 8192 byte .
Selama operasi baca di BufferedInputStream
, sepotong byte dibaca dari disk dan disimpan di buffer internal. Dan dari byte buffer internal dibaca satu per satu.
Oleh karena itu, jumlah komunikasi ke disk berkurang. Inilah sebabnya mengapa membaca byte lebih cepat menggunakan BufferedInputStream
.
Untuk membuat BufferedInputStream
, kita harus mengimpor java.io.BufferedInputStream
paket dulu. Setelah kami mengimpor paket, inilah cara kami membuat aliran input.
// Creates a FileInputStream
FileInputStream file = new FileInputStream(String path);
// Creates a BufferedInputStream
BufferedInputStream buffer = new BufferInputStream(file);
Pada contoh di atas, kita telah membuat BufferdInputStream
bernama penyangga dengan FileInputStream
bernama file .
Di sini, buffer internal memiliki ukuran default 8192 byte. Namun, kami juga dapat menentukan ukuran buffer internal.
// Creates a BufferedInputStream with specified size internal buffer
BufferedInputStream buffer = new BufferInputStream(file, int size);
penyangga akan membantu membaca byte dari file dengan lebih cepat.
BufferedInputStream
class menyediakan implementasi untuk berbagai metode yang ada di InputStream
kelas.
read()
- membaca satu byte dari aliran inputread(byte[] arr)
- membaca byte dari aliran dan menyimpan dalam larik yang ditentukanread(byte[] arr, int start, int length)
- membaca jumlah byte yang sama dengan panjang dari aliran dan menyimpan dalam larik yang ditentukan mulai dari posisi start Misalkan kita memiliki file bernama input.txt dengan konten berikut.
This is a line of text inside the file.
Mari kita coba membaca file menggunakan BufferedInputStream
.
import java.io.BufferedInputStream;
import java.io.FileInputStream;
class Main {
public static void main(String[] args) {
try {
// Creates a FileInputStream
FileInputStream file = new FileInputStream("input.txt");
// Creates a BufferedInputStream
BufferedInputStream input = new BufferedInputStream(file);
// Reads first byte from file
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
This is a line of text inside the file.
Pada contoh di atas, kami telah membuat aliran input buffer bernama buffer bersama dengan FileInputStream
. Aliran input ditautkan dengan file input.txt .
FileInputStream file = new FileInputStream("input.txt");
BufferedInputStream buffer = new BufferedInputStream(file);
Di sini, kami telah menggunakan read()
metode untuk membaca array byte dari buffer internal pembaca buffer.
Untuk mendapatkan jumlah byte yang tersedia di aliran input, kita dapat menggunakan available()
metode. Misalnya,
import java.io.FileInputStream;
import java.io.BufferedInputStream;
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 file = new FileInputStream("input.txt");
// Creates a BufferedInputStream
BufferedInputStream buffer = new BufferedInputStream(file);
// Returns the available number of bytes
System.out.println("Available bytes at the beginning: " + buffer.available());
// Reads bytes from the file
buffer.read();
buffer.read();
buffer.read();
// Returns the available number of bytes
System.out.println("Available bytes at the end: " + buffer.available());
buffer.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Keluaran
Available bytes at the beginning: 39 Available bytes at the end: 36
Pada contoh di atas,
available()
metode untuk memeriksa jumlah byte yang tersedia di aliran input.read()
metode 3 kali untuk membaca 3 byte dari aliran input.
Untuk membuang dan melewati jumlah byte yang ditentukan, kita dapat menggunakan skip()
metode. Misalnya,
import java.io.FileInputStream;
import java.io.BufferedInputStream;
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 file = new FileInputStream("input.txt");
// Creates a BufferedInputStream
BufferedInputStream buffer = new BufferedInputStream(file);
// Skips the 5 bytes
buffer.skip(5);
System.out.println("Input stream after skipping 5 bytes:");
// Reads the first byte from input stream
int i = buffer.read();
while (i != -1) {
System.out.print((char) i);
// Reads next byte from the input stream
i = buffer.read();
}
// Closes the input stream
buffer.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Keluaran
Input stream after skipping 5 bytes: is a line of text inside the file.
Pada contoh di atas, kita telah menggunakan skip()
metode untuk melewati 5 byte dari aliran input file. Oleh karena itu, byte 'T'
, 'h'
, 'i'
, 's'
dan ' '
dilewati dari aliran input.
Untuk menutup aliran input buffer, kita dapat menggunakan close()
metode. Setelah close()
dipanggil, kita tidak dapat menggunakan aliran input untuk membaca data.
Metode | Deskripsi |
---|---|
mark() | menandai posisi di aliran input hingga data yang telah dibaca |
reset() | mengembalikan kontrol ke titik di aliran input tempat tanda ditetapkan |
Untuk mempelajari lebih lanjut, kunjungi Java BufferdInputStream (dokumentasi resmi Java).
java
Kelas Java PrintStream Dalam tutorial ini, kita akan belajar tentang kelas Java PrintStream dan metode print() dan printf() dengan bantuan contoh. PrintStream kelas java.io package dapat digunakan untuk menulis data keluaran dalam bentuk (teks) yang dapat dibaca secara umum alih-alih byte. Ini mem
Kelas Pembaca File Java Dalam tutorial ini, kita akan belajar tentang Java FileReader dan metodenya dengan bantuan contoh. FileReader kelas java.io package dapat digunakan untuk membaca data (dalam karakter) dari file. Ini memperluas InputSreamReader kelas. Sebelum Anda mempelajari tentang File
Kelas Java FileWriter Dalam tutorial ini, kita akan belajar tentang Java FileWriter dan metodenya dengan bantuan contoh. FileWriter kelas java.io package dapat digunakan untuk menulis data (dalam karakter) ke file. Ini memperluas OutputStreamWriter kelas. Sebelum Anda mempelajari lebih lanjut t
Kelas Java BufferedWriter Dalam tutorial ini, kita akan belajar tentang Java BufferedWriter dan metodenya dengan bantuan contoh. BufferedWriter kelas java.io package dapat digunakan dengan penulis lain untuk menulis data (dalam karakter) dengan lebih efisien. Ini memperluas kelas abstrak Writer .