openplanning

Hướng dẫn và ví dụ Java BufferedWriter

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- BufferedWriter

BufferedWriter là một lớp con của Writer, được sử dụng để đơn giản hoá việc ghi văn bản vào một luồng đầu ra ký tự (character output stream), và nâng cao hiệu suất của chương trình.
Nguyên tắc hoạt động của BufferedWriter giống như hình minh hoạ dưới đây:
BufferedWriter gói bên trong nó một đối tượng Writer, đối tượng này làm nhiệm vụ ghi dữ liệu vào mục tiêu (chẳng hạn file).
BufferedWrite ghi đè (override) các phương thức được thừa kế từ lớp cha của nó, chẳng hạn như write(), write(char[]),... để đảm bảo rằng dữ liệu sẽ được ghi vào buffer chứ không phải ghi vào mục tiêu (chẳng hạn file). Nhưng khi buffer đầy, tất cả dữ liệu trên buffer sẽ được đẩy vào Writer và giải phóng buffer. Bạn cũng có thể gọi phương thức BufferedWriter.flush() để chủ động đẩy tất cả dữ liệu trên buffer sang Writer và giải phóng buffer. Dữ liệu cũng được đẩy từ buffer sang Writer khi gọi phương thức BufferedWriter.close().
Cái gọi là "buffer" được đề cập ở phía trên thực tế chỉ là một mảng các ký tự. Bạn có thể chỉ định kích thước của mảng này khi khởi tạo đối tượng BufferedWriter.
Các dữ liệu được ghi tạm vào buffer sẽ giảm thiểu việc ghi liên tục với mục tiêu (chẳng hạn file trên ổ cứng) vì vậy nâng cao hiệu xuất của chương trình.
BufferedWriter​ constructors

BufferedWriter​(Writer out)     

BufferedWriter​(Writer out, int sz)
  • Contructor BufferedWriter(Writer,int) tạo ra một đối tượng BufferedWriter với mảng buffer có kích thước được chỉ định.
  • Contructor BufferedWriter(Writer) tạo ra một đối tượng BufferedWriter với mảng buffer có kích thước mặc định (sz = 8192).

2- Examples

Ví dụ: Tạo một BufferedWriter với kích thước mảng buffer16384. Chú ý: Kiểu dữ liệu char của Java2 bytes. Điều đó có nghĩa là buffer này có dung lượng 32786 bytes (32 KB).

File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create Writer to write a file.
Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);

// Create a BufferedWriter with buffer array size of 16384 (32786 bytes = 32 KB).
BufferedWriter br = new BufferedWriter(writer, 16384);
Tạo một BufferedWriter với kích thước mảng buffer mặc định (8192), tương đương với 16384 bytes (16 KB).

File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create Writer to write a file.
Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);

// Create a BufferedWriter with default buffer array size of 8192 (16384 bytes = 16 KB).
BufferedWriter br = new BufferedWriter(writer);
Code đầy đủ của ví dụ:
BufferedWriterEx1.java

package org.o7planning.bufferedwriter.ex;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.nio.charset.StandardCharsets;

public class BufferedWriterEx1 {

    public static void main(String[] args) throws IOException {
        File outFile = new File("/Volumes/Data/test/outfile.txt");
        
        outFile.getParentFile().mkdirs(); // Create parent folder.
        
        // Create Writer to write a file.
        Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);

        // Create a BufferedWriter with buffer array size of 16384 (32786 bytes = 32 KB).
        BufferedWriter br = new BufferedWriter(writer, 16384);
    
        br.write("Line 1");
        br.newLine();  
        br.write("Line 2");
        br.flush();
        
        br.newLine();
        br.write("Line 3");
        
        br.close();
    }
}
Output:
outfile.txt

Line 1
Line 2
Line 3

Xem thêm các chuyên mục: