Trong hướng dẫn này, chúng ta sẽ tìm hiểu về Reader trong Java, các lớp con và các phương thức của nó với sự trợ giúp của một ví dụ.

lớp Reader của gói java.io là một lớp cha trừu tượng đại diện cho một dòng ký tự.

Vì Reader là một lớp trừu tượng nên bản thân nó không hữu ích. Tuy nhiên, các lớp con của nó có thể được sử dụng để đọc dữ liệu.

1. Các lớp con của Reader

Để sử dụng chức năng của Reader, chúng ta có thể sử dụng các lớp con của nó. Một số trong số đó là:

  • BufferedReader
  • InputStreamReader
  • FileReader
  • StringReader

Chúng ta sẽ tìm hiểu về tất cả các lớp con này trong hướng dẫn tiếp theo.

1. Tạo trình đọc

Để tạo một Reader, trước tiên chúng ta phải nhập gói java.io.Reader. Khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo trình đọc.

// Creates a Reader

Reader input = new FileReader();

Ở đây, chúng ta đã tạo một trình đọc bằng cách sử dụng lớp FileReader. Đó là vì Reader là một lớp trừu tượng. Do đó chúng ta không thể tạo một đối tượng của Reader.

Lưu ý : Chúng ta cũng có thể tạo trình đọc từ các lớp con khác của Reader.

2. Phương thức của Reader

lớp Reader cung cấp phương pháp khác nhau được thực hiện bởi lớp con của nó. Dưới đây là một số phương thức thường được sử dụng:

  • ready() – kiểm tra xem đầu đọc đã sẵn sàng để đọc chưa
  • read(char[] array) – đọc các ký tự từ luồng và lưu trữ trong mảng được chỉ định
  • read(char[] array, int start, int length) – đọc số ký tự bằng chiều dài từ luồng và lưu trữ trong mảng được chỉ định bắt đầu từ khởi đầu
  • mark() – đánh dấu vị trí trong luồng mà dữ liệu đã được đọc
  • reset() – trả lại điều khiển đến điểm trong luồng nơi đánh dấu được đặt
  • skip() – loại bỏ số lượng ký tự được chỉ định khỏi luồng

3. Ví dụ: Trình đọc bằng FileReader

Đây là cách chúng ta có thể triển khai Reader bằng cách sử dụng lớp FileReader.

Giả sử chúng ta có một tệp có tên input.txt với nội dung như sau.

This is a line of text inside the file.

Hãy thử đọc tệp này bằng cách sử dụng FileReader(một lớp con của Reader).

import java.io.Reader;
import java.io.FileReader;

class Main {
    public static void main(String[] args) {

        // Creates an array of character
        char[] array = new char[100];

        try {
            // Creates a reader using the FileReader
            Reader input = new FileReader("input.txt");

            // Checks if reader is ready 
            System.out.println("Is there data in the stream?  " + input.ready());

            // Reads characters
            input.read(array);
            System.out.println("Data in the stream:");
            System.out.println(array);

            // Closes the reader
            input.close();
        }

        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

Đầu ra

Is there data in the stream?  true
Data in the stream:
This is a line of text inside the file.

Trong ví dụ trên, chúng tôi đã tạo một trình đọc bằng cách sử dụng lớp FileReader. Trình đọc được liên kết với tệp input.txt .

Reader input = new FileReader("input.txt");

Để đọc dữ liệu từ tệp input.txt , chúng tôi đã triển khai các phương pháp này.

input.read();       // to read data from the reader
input.close();      // to close the reader

Để tìm hiểu thêm, hãy truy cập Java Reader (tài liệu Java chính thức) .

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!