Dùng đồng thời FileWriter, BufferedWriter, PrintWriter có ý nghĩa gì?

Mọi người cho em hỏi việc sử dụng cả 3 lớp FileWriter, BufferedWriter, PrintWriter theo như ở dưới có ý nghĩa gì vậy ạ? Em cảm ơn.

void openFileToWrite(String fileName) throws IOException {
    fileWriter = new FileWriter(fileName, true);
    bufferedWriter = new BufferedWriter(fileWriter);
    printWriter = new PrintWriter(bufferedWriter);
}

Để trả lời câu hỏi này bạn cần hiểu mỗi lớp cung cấp những tính năng gì.
Tất cả các lớp đều kế thừa từ lớp writer có khả năng ghi dữ liệu vào output
FileWriter: Chịu trách nhiệm ghi dữ liệu ra output là file
BufferedWriter: Các lớp Writter, Reader, Input, Output có bắt đầu bằng chữ Buffered đều có nhiệm vụ như là 1 bộ đệm giúp quá trình đọc ghi hiệu quả hơn vì dữ liệu sẽ được đọc ghi theo lô vào RAM trước khi đọc hoặc ghi trên bộ nhớ ngoài
PrintWriter: Lớp này cung cấp nhiều method thuận tiện cho việc ghi dữ liệu hơn so với lớp writer gốc.

Tóm gọn lại:
FileWriter: thao tác ở tầng thấp
BufferedWriter: bộ đệm trung gian
PrintWriter: cung cấp API bậc cao

9 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?