Lớp CharArrayWriter
(Class CharArrayWriter)

Lớp CharArrayWriter trong Java là một lớp thuộc gói java.io, được sử dụng để ghi các dữ liệu ký tự vào mảng ký tự của bộ nhớ đệm (buffer). Khác với CharArrayReader, lớp này không đọc từ một mảng ký tự có sẵn mà nó tạo ra và quản lý mảng ký tự bên trong khi bạn ghi dữ liệu vào.

Khi bạn viết dữ liệu vào CharArrayWriter, bộ đệm sẽ tự động tăng kích thước nếu cần thiết để chứa thêm dữ liệu.

Truy xuất dữ liệu: Bạn có thể lấy dữ liệu đã viết dưới dạng mảng ký tự bằng phương thức toCharArray() hoặc dưới dạng chuỗi bằng phương thức toString().

Không cần đóng: Không giống như các lớp luồng khác, bạn không cần gọi phương thức close() để đóng CharArrayWriter.

Khai báo lớp CharArrayWriter trong Java

Để sử dụng lớp CharArrayWriter, bạn cần import gói java.io bạn cần thêm câu lệnh import vào đầu file Java của mình. Gói này cung cấp các lớp và giao diện để thực hiện các hoạt động nhập xuất (I/O) trong Java.

Cú pháp câu lệnh import:

Cú pháp

import java.io.CharArrayWriter; 

Cú pháp khai báo lớp CharArrayWriter:

Cú pháp

public class CharArrayWriter
extends Writer

Dưới đây là giải thích chi tiết về cú pháp khai báo này:

↳ public class CharArrayWriter: Đây là khai báo một lớp công khai (public) tên là CharArrayWriter. Lớp này có thể được truy cập từ bất kỳ đâu trong dự án Java, miễn là nó được import hoặc ở cùng gói.

↳ extends Writer: Lớp CharArrayWriter kế thừa (extends) từ lớp Writer. Điều này có nghĩa là CharArrayWriter là một lớp con của Writer và thừa hưởng tất cả các thuộc tính và phương thức của lớp Writer. Ngoài ra, CharArrayWriter có thể cung cấp thêm các phương thức và thuộc tính riêng của mình hoặc ghi đè các phương thức của lớp Writer nếu cần.

Các trường trong lớp CharArrayWriter

Lớp CharArrayWriter sử dụng hai trường chính để quản lý dữ liệu được viết vào bộ đệm:

↳ protected char[] buf: Mảng ký tự chứa dữ liệu cần đọc. Đây là mảng gốc được truyền vào khi tạo đối tượng CharArrayReader.

↳ protected int count: Chỉ số cuối cùng của mảng buf chứa dữ liệu hợp lệ. Nó biểu thị kích thước thực tế của dữ liệu trong mảng.

Các Constructor của lớp CharArrayWriter

Lớp CharArrayWriter cung cấp hai constructor để tạo đối tượng và khởi tạo bộ đệm:

↳ CharArrayWriter(): Tạo một CharArrayWriter với kích thước bộ đệm mặc định.

↳ CharArrayWriter(int initialSize): Tạo một CharArrayWriter với kích thước bộ đệm ban đầu là initialSize.

Các phương thức của lớp CharArrayWriter

Các phương thức trong CharArrayWriter cung cấp nhiều cách để ghi dữ liệu vào một mảng ký tự. Bạn có thể sử dụng chúng để ghi dữ liệu dưới dạng ký tự hoặc mảng ký tự, chuyển dữ liệu từ mảng ký tự sang các luồng khác, và đảm bảo rằng dữ liệu được ghi đúng cách. Dưới đây là danh sách tất cả các phương thức của lớp CharArrayWriter trong Java:

↳ CharArrayWriter append(char c): Nối thêm một ký tự vào cuối bộ đệm.

↳ CharArrayWriter append(CharSequence csq): Nối thêm một chuỗi ký tự vào cuối bộ đệm.

↳ CharArrayWriter append(CharSequence csq, int start, int end): Nối thêm một phần của chuỗi ký tự vào cuối bộ đệm.

↳ void close(): Đóng luồng (không có tác dụng trong CharArrayWriter).

↳ void flush(): Không có tác dụng trong CharArrayWriter.

↳ void reset(): Đặt lại vị trí viết trong bộ đệm về đầu.

↳ int size(): Trả về số lượng ký tự hiện có trong bộ đệm.

↳ char[] toCharArray(): Tạo một mảng ký tự chứa nội dung của bộ đệm.

↳ String toString(): Chuyển đổi nội dung của bộ đệm thành một chuỗi.

↳ void write(char[] c, int off, int len): Viết một phần của một mảng ký tự vào bộ đệm.

↳ void write(int c): Viết một ký tự vào bộ đệm.

↳ void write(String str, int off, int len): Viết một phần của một chuỗi vào bộ đệm.

↳ void writeTo(Writer out): Viết nội dung của bộ đệm vào một luồng ký tự khác.

Ví dụ

Dưới đây là một ví dụ về cách sử dụng lớp CharArrayWriter trong Java:

Ví dụ: Example.java

import java.io.CharArrayWriter;
import java.io.IOException;

public class Example {
    public static void main(String[] args) {
        try {
            // Tạo một đối tượng CharArrayWriter
            CharArrayWriter charArrayWriter = new CharArrayWriter();
            
            // Ghi các ký tự vào CharArrayWriter
            charArrayWriter.write("Xin chào!");
            charArrayWriter.write(" Đây là ví dụ về CharArrayWriter.");
            
            // Chuyển nội dung thành chuỗi và in ra
            String result = charArrayWriter.toString();
            System.out.println("Nội dung đã ghi: " + result);
            
            // Chuyển nội dung thành mảng ký tự và in ra
            char[] charArray = charArrayWriter.toCharArray();
            System.out.println("Mảng ký tự: ");
            for (char c : charArray) {
                System.out.print(c);
            }
            // Đóng CharArrayWriter (không thực sự cần thiết vì không có tài nguyên hệ thống được sử dụng)
            charArrayWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
}

Kết quả của chương trình là

Nội dung đã ghi: Xin chào! Đây là ví dụ về CharArrayWriter.
Mảng ký tự:
Xin chào! Đây là ví dụ về CharArrayWriter.

Lớp CharArrayWriter cung cấp một cách tiện lợi để ghi các ký tự vào một mảng ký tự nội bộ. Sau khi ghi xong, bạn có thể dễ dàng chuyển đổi nội dung thành một chuỗi hoặc một mảng ký tự để sử dụng trong các thao tác tiếp theo.

Câu Nói Truyền Cảm Hứng

“Bắt đầu ở đâu không quan trọng, quan trọng là bạn sẵn sàng bắt đầu.” – W. Clement Stone

Không Gian Tích Cực

“Chúc bạn luôn giữ vững niềm tin và sức mạnh để vượt qua mọi thử thách trong cuộc sống.”