Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Java BufferedWriter và các phương thức của nó với sự trợ giúp của các ví dụ.
Các BufferedWriter
lớp của java.io
gói có thể được sử dụng với các tác giả khác để ghi dữ liệu (bằng ký tự) hiệu quả hơn.
Nó mở rộng lớp trừu tượng Writer
.
Hoạt động của BufferedWriter
Các BufferedWriter
duy trì một nội đệm 8192 ký tự .
Trong quá trình ghi, các ký tự được ghi vào bộ đệm bên trong thay vì đĩa. Khi bộ đệm được lấp đầy hoặc bộ ghi được đóng, toàn bộ ký tự trong bộ đệm sẽ được ghi vào đĩa.
Do đó, số lượng thông tin liên lạc đến đĩa bị giảm. Đây là lý do tại sao sử dụng các ký tự nhanh hơn BufferedWriter
.
Tạo một BufferedWriter
Để tạo một BufferedWriter
, java.io.BufferedWriter
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 viết được đệm.
// Creates a FileWriter
FileWriter file = new FileWriter(String name);
// Creates a BufferedWriter
BufferedWriter buffer = new BufferedWriter(file);
Trong ví dụ trên, chúng ta đã tạo một vùng đệmBufferedWriter
được đặt tên với tệp được đặt tên .FileWriter
Ở đây, bộ đệm bên trong của BufferedWriter
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 BufferedWriter with specified size internal buffer
BufferedWriter buffer = new BufferedWriter(file, int size);
Bộ đệm sẽ giúp ghi các ký tự vào tệp hiệu quả hơn.
Các phương thức của BufferedWriter
Các BufferedWriter
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 Writer
.
viết phương pháp
write()
– writes a single character to the internal buffer of the writerwrite(char[] array)
– writes the characters from the specified array to the writerwrite(String data)
– writes the specified string to the writer
Ví dụ: BufferedWriter để ghi dữ liệu vào một tệp
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String args[]) {
String data = "This is the data in the output file";
try {
// Creates a FileWriter
FileWriter file = new FileWriter("output.txt");
// Creates a BufferedWriter
BufferedWriter output = new BufferedWriter(file);
// Writes the string to the file
output.write(data);
// Closes the writer
output.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Trong ví dụ trên, chúng ta đã tạo một trình ghi đệm có tên là đầu ra cùng với FileWriter
. Trình ghi trong bộ đệm được liên kết với tệp output.txt .
FileWriter file = new FileWriter("output.txt");
BufferedWriter output = new BufferedWriter(file);
Để ghi dữ liệu vào tệp, chúng tôi đã sử dụng write()
phương pháp.
Ở đây khi chúng tôi chạy chương trình, tệp output.txt chứa nội dung sau.
This is a line of text inside the file.
phương thức flush ()
Để xóa bộ đệm bên trong, chúng ta có thể sử dụng flush()
phương pháp. Phương thức này buộc người viết ghi tất cả dữ liệu có trong bộ đệm vào tệp đích.
Ví dụ, giả sử chúng ta có một tệp trống có tên là output.txt .
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Main {
public static void main(String[] args) {
String data = "This is a demo of the flush method";
try {
// Creates a FileWriter
FileWriter file = new FileWriter(" flush.txt");
// Creates a BufferedWriter
BufferedWriter output = new BufferedWriter(file);
// Writes data to the file
output.write(data);
// Flushes data to the destination
output.flush();
System.out.println("Data is flushed to the file.");
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Đầu ra
Data is flushed to the file.
Khi chúng tôi chạy chương trình, tệp output.txt được điền bằng văn bản được biểu thị bằng dữ liệu chuỗi .
phương thức close ()
Để đóng trình ghi trong bộ đệ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 viết để ghi dữ liệu.
Các phương pháp khác của BufferedWriter
Method | Decfscription |
---|---|
newLine() | inserts a new line to the writer |
append() | inserts the specified character to the current writer |
Để tìm hiểu thêm, hãy truy cập Java BufferedWriter (tài liệu Java chính thức) .