Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java BufferedReader và các phương pháp của nó với sự trợ giúp của các ví dụ.
Các BufferedReader
lớp của java.io
gói có thể được sử dụng với các độc giả khác để đọc dữ liệu (bằng ký tự) hiệu quả hơn.
Nó mở rộng lớp trừu tượng Reader
.
” “
Hoạt động của BufferedReader
Các BufferedReader
duy trì một nội đệm 8192 ký tự .
Trong quá trình đọc trong BufferedReader
, một đoạn ký tự được đọc từ đĩa và được lưu trữ trong bộ đệm bên trong. Và từ các ký tự đệm bên trong được đọc riêng lẻ.
Do đó, số lượng thông tin liên lạc đến đĩa bị giảm. Đây là lý do tại sao đọc các ký tự nhanh hơn khi sử dụng BufferedReader
.
Tạo một BufferedReader
Để tạo một BufferedReader
, java.io.BuferedReader
trước tiên chúng ta phải nhập gói. Sau khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo trình đọc.
// Creates a FileReader
FileReader file = new FileReader(String file);
// Creates a BufferedReader
BufferedReader buffer = new BufferedReader(file);
Trong ví dụ trên, chúng ta đã tạo một vùng đệmBufferedReader
được đặt tên với tệp được đặt tên .FileReader
Ở đây, bộ đệm bên trong của BufferedReader
có kích thước mặc định là 8192 ký tự. Tuy nhiên, chúng tôi cũng có thể chỉ định kích thước của bộ đệm bên trong.
// Creates a BufferdReader with specified size internal buffer
BufferedReader buffer = new BufferedReader(file, int size);
Bộ đệm sẽ giúp đọc các ký tự từ tệp nhanh hơn.
Phương thức BufferedReader
Các BufferedReader
lớp học cung cấp triển khai cho các phương pháp khác nhau hiện diện trong Reader
.
phương thức read ()
read()
– reads a single character from the internal buffer of the readerread(char[] array)
– reads the characters from the reader and stores in the specified arrayread(char[] array, int start, int length)
– reads the number of characters equal to length from the reader and stores in the specified array starting from the position start
Ví dụ, giả sử chúng ta có một tệp tên input.txt với nội dung như sau.
This is a line of text inside the file.
Hãy thử đọc tệp bằng cách sử dụng BufferedReader
.
import java.io.FileReader;
import java.io.BufferedReader;
class Main {
public static void main(String[] args) {
// Creates an array of character
char[] array = new char[100];
try {
// Creates a FileReader
FileReader file = new FileReader("input.txt");
// Creates a BufferedReader
BufferedReader input = new BufferedReader(file);
// Reads characters
input.read(array);
System.out.println("Data in the file: ");
System.out.println(array);
// Closes the reader
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Đầu ra
Data in the file: This is a line of text inside the file.
Trong ví dụ trên, chúng tôi đã tạo một bộ đọc đệm có tên là đầu vào . Bộ đọc đệm được liên kết với tệp input.txt .
FileReader file = new FileReader("input.txt");
BufferedReader input = new BufferedReader(file);
Ở đây, chúng tôi đã sử dụng read()
phương pháp để đọc một mảng ký tự từ bộ đệm bên trong của bộ đọc đệm.
phương thức bỏ qua ()
Để loại bỏ và bỏ qua số ký tự đã chỉ định, chúng ta có thể sử dụng skip()
phương pháp này. Ví dụ,
import java.io.FileReader;
import java.io.BufferedReader;
public class Main {
public static void main(String args[]) {
// Creates an array of characters
char[] array = new char[100];
try {
// Suppose, the input.txt file contains the following text
// This is a line of text inside the file.
FileReader file = new FileReader("input.txt");
// Creates a BufferedReader
BufferedReader input = new BufferedReader(file);
// Skips the 5 characters
input.skip(5);
// Reads the characters
input.read(array);
System.out.println("Data after skipping 5 characters:");
System.out.println(array);
// closes the reader
input.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Đầu ra
Data after skipping 5 characters: is a line of text inside the file.
Trong ví dụ trên, chúng tôi đã sử dụng skip()
phương pháp để bỏ qua 5 ký tự khỏi trình đọc tệp. Do đó, các nhân vật 'T'
, 'h'
, 'i'
, 's'
và ' '
được bỏ qua từ tập tin gốc.
phương thức close ()
Để đóng bộ đọc đệm, chúng ta có thể sử dụng close()
phương pháp này. Khi close()
phương thức được gọi, chúng ta không thể sử dụng trình đọc để đọc dữ liệu.
Các phương pháp khác của BufferedReader
Method | Decfscription |
---|---|
ready() | checks if the file reader is ready to be read |
mark() | mark the position in reader up to which data has been read |
reset() | returns the control to the point in the reader where the mark was set |
Để tìm hiểu thêm, hãy truy cập Java BufferedReader (tài liệu Java chính thức) .