Hướng dẫn và ví dụ Java BufferedWriter
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 buffer là 16384. Chú ý: Kiểu dữ liệu char của Java là 2 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
Các hướng dẫn Java IO
- Hướng dẫn và ví dụ Java CharArrayWriter
- Hướng dẫn và ví dụ Java FilterReader
- Hướng dẫn và ví dụ Java FilterWriter
- Hướng dẫn và ví dụ Java PrintStream
- Hướng dẫn và ví dụ Java BufferedReader
- Hướng dẫn và ví dụ Java BufferedWriter
- Hướng dẫn và ví dụ Java StringReader
- Hướng dẫn và ví dụ Java StringWriter
- Hướng dẫn và ví dụ Java PipedReader
- Hướng dẫn và ví dụ Java LineNumberReader
- Hướng dẫn và ví dụ Java PushbackReader
- Hướng dẫn và ví dụ Java PrintWriter
- Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
- Hướng dẫn sử dụng luồng vào ra ký tự trong Java
- Hướng dẫn và ví dụ Java BufferedOutputStream
- Hướng dẫn và ví dụ Java ByteArrayOutputStream
- Hướng dẫn và ví dụ Java DataOutputStream
- Hướng dẫn và ví dụ Java PipedInputStream
- Hướng dẫn và ví dụ Java OutputStream
- Hướng dẫn và ví dụ Java ObjectOutputStream
- Hướng dẫn và ví dụ Java PushbackInputStream
- Hướng dẫn và ví dụ Java SequenceInputStream
- Hướng dẫn và ví dụ Java BufferedInputStream
- Hướng dẫn và ví dụ Java Reader
- Hướng dẫn và ví dụ Java Writer
- Hướng dẫn và ví dụ Java FileReader
- Hướng dẫn và ví dụ Java FileWriter
- Hướng dẫn và ví dụ Java CharArrayReader
- Hướng dẫn và ví dụ Java ByteArrayInputStream
- Hướng dẫn và ví dụ Java DataInputStream
- Hướng dẫn và ví dụ Java ObjectInputStream
- Hướng dẫn và ví dụ Java InputStreamReader
- Hướng dẫn và ví dụ Java OutputStreamWriter
- Hướng dẫn và ví dụ Java InputStream
- Hướng dẫn và ví dụ Java FileInputStream
Show More
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java New IO
- Các hướng dẫn Spring Cloud
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Java Collections Framework
- Java cơ bản
- Các hướng dẫn Java Date Time
- Các thư viện mã nguồn mở Java
- Các hướng dẫn Java Web Services
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Boot