Menguasai Java BufferedReader: Penanganan Aliran Karakter Efisien
Java BufferedReader Class
Temukan bagaimana kelas BufferedReader meningkatkan kinerja I/O Java dengan contoh praktis dan penjelasan metode yang mendalam.
Kelas BufferedReader, bagian dari paket java.io, membungkus Reader lain untuk memberikan input karakter yang efisien. Dengan membaca bagian data ke dalam buffer internal, mengurangi operasi I/O disk yang mahal.
Bagaimana BufferedReader Bekerja
Secara internal, BufferedReader memelihara buffer sebesar 8.192 karakter (ukuran default). Selama operasi baca, blok karakter diambil dari file sumber dan disimpan dalam buffer ini. Baca selanjutnya kemudian menarik karakter dari buffer satu per satu, secara signifikan mengurangi jumlah akses disk dan mempercepat I/O.
Membuat BufferedReader
Untuk menggunakan BufferedReader, impor dari java.io dan bungkus implementasi Reader lain, seperti FileReader:
import java.io.FileReader; import java.io.BufferedReader; FileReader file = new FileReader("example.txt"); BufferedReader reader = new BufferedReader(file);
Anda juga dapat menentukan ukuran buffer kustom:
BufferedReader reader = new BufferedReader(file, 16384); // 16KB buffer
Metode Utama BufferedReader
read()
int read() – reads a single character from the buffer. int read(char[] cbuf) – reads characters into the supplied array. int read(char[] cbuf, int off, int len) – reads up to len characters into the array starting at offset off.
Example: reading the entire content of input.txt into a character array:
import java.io.FileReader; import java.io.BufferedReader; class Main { public static void main(String[] args) { char[] buffer = new char[100]; try (FileReader file = new FileReader("input.txt"); BufferedReader reader = new BufferedReader(file)) { reader.read(buffer); System.out.println("Data in the file:\n" + new String(buffer)); } catch (Exception e) { e.printStackTrace(); } } }
Output
Data in the file: This is a line of text inside the file.
skip()
The skip(long n) method discards the next n characters from the stream:
reader.skip(5); // skips "This "
After skipping, reading the remaining content yields:
Data after skipping 5 characters: is a line of text inside the file.
close()
Always close the reader to free system resources:
reader.close();
Other Useful Methods
| Method | Description |
ready() | Checks if the stream is ready to be read without blocking. |
mark(int readAheadLimit) | Marks the current position in the stream. |
reset() | Resets the stream to the most recent mark. |
For a complete reference, visit the official Java documentation.