Lớp StringReader
(Class StringReader)

Lớp StringReader trong Java là một lớp con của Reader và được sử dụng để đọc dữ liệu ký tự từ một chuỗi (String). Khác với việc đọc dữ liệu từ tệp hoặc luồng, StringReader lấy đầu vào trực tiếp từ một chuỗi ký tự đã được xác định trước.

Khai báo lớp StringReader trong Java

Để sử dụng lớp StringReader, 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.StringReader;

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

Cú pháp

public class StringReader
extends Reader

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

↳ public class StringReader: Đây là khai báo một lớp công khai (public) tên là StringReader. 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 Reader: Lớp StringReader kế thừa từ lớp Reader. Điều này có nghĩa là StringReader là một lớp con của Reader, và nó thừa hưởng các phương thức và thuộc tính của lớp Reader, đồng thời cung cấp các chức năng riêng để đọc dữ liệu từ chuỗi ký tự (String).

Constructor của lớp StringReader

Lớp StringReader có một constructor duy nhất:

↳ StringReader(String s): Tạo một StringReader mới từ chuỗi s.

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

Các phương thức trong StringReader cung cấp nhiều cách để đọc dữ liệu từ một chuỗi ký tự. Bạn có thể sử dụng chúng để đọc dữ liệu theo ký tự hoặc mảng ký tự, đánh dấu và đặt lại vị trí đọc trong luồng, và kiểm tra xem luồng còn dữ liệu để đọc hay không. Dưới đây là danh sách tất cả các phương thức của lớp StringReader trong Java:

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

↳ void mark(int readAheadLimit): Đánh dấu vị trí hiện tại trong chuỗi để có thể quay lại sau này bằng phương thức reset().

↳ boolean markSupported(): Luôn trả về true vì StringReader hỗ trợ đánh dấu.

↳ int read(): Đọc một ký tự từ chuỗi. Trả về giá trị của ký tự hoặc -1 nếu đã đến cuối chuỗi.

↳ int read(char[] cbuf, int off, int len): Đọc tối đa len ký tự vào mảng cbuf bắt đầu từ vị trí off. Trả về số lượng ký tự đã đọc hoặc -1 nếu đã đến cuối chuỗi.

↳ boolean ready(): Luôn trả về true vì dữ liệu luôn sẵn sàng để đọc.

↳ void reset(): Đặt lại vị trí của luồng về vị trí đã được đánh dấu bằng phương thức mark().

↳ long skip(long n): Bỏ qua n ký tự trong chuỗi. Trả về số lượng ký tự thực sự đã bỏ qua.

Ví dụ

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

Ví dụ: Example.java

import java.io.IOException;
import java.io.StringReader;

public class Example {
    public static void main(String[] args) {
        // Tạo một chuỗi đầu vào
        String input = "Xin chào, thế giới!";

        // Tạo một StringReader để đọc từ chuỗi đầu vào
        StringReader stringReader = new StringReader(input);

        try {
            int data;
            // Đọc từng ký tự từ StringReader cho đến khi không còn dữ liệu (read() trả về -1)
            while ((data = stringReader.read()) != -1) {
                // In ra ký tự đã đọc được
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // Đóng StringReader sau khi sử dụng
            stringReader.close();
        }
    }
}

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

Xin chào, thế giới!

Ví dụ này minh họa cách sử dụng StringReader để đọc từng ký tự từ một chuỗi ký tự và xử lý chúng giống như cách bạn làm với dữ liệu đọc từ một tệp hoặc luồng.

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.”