Lớp LineNumberReader
(Class LineNumberReader)

Lớp LineNumberReader là một lớp kế thừa từ BufferedReader (Bộ đọc ký tự đệm) có chức năng theo dõi số dòng khi bạn đọc dữ liệu. Nó giống như việc đánh số dòng cho văn bản trong lúc bạn đang đọc vậy.

Đặc điểm chính của lớp LineNumberReader

↳ Đếm và ghi nhớ số dòng hiện tại khi bạn đọc dữ liệu từng dòng.

↳ Kế thừa các tính năng đọc đệm từ lớp BufferedReader.

↳ Bắt đầu đánh số dòng từ 0 theo mặc định.

↳ Bạn có thể thay đổi số dòng hiện tại bằng phương thức setLineNumber(int).

Khai báo lớp LineNumberReader trong Java

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

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

Cú pháp

public class LineNumberReader
  extends BufferedReader

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

↳ public class LineNumberReader: Đây là khai báo của một lớp có tên là LineNumberReader. Từ khóa public chỉ ra rằng lớp này có thể được truy cập từ bất kỳ đâu trong chương trình.

↳ extends BufferedReader: Từ khóa extends có nghĩa là lớp LineNumberReader kế thừa từ lớp BufferedReader. Điều này có nghĩa là LineNumberReader là một loại BufferedReader và nó có thể sử dụng tất cả các phương thức và thuộc tính của BufferedReader.

Các Constructor của lớp LineNumberReader

Lớp LineNumberReader cung cấp hai constructor để tạo đối tượng và thiết lập kích thước bộ đệm:

↳ LineNumberReader(Reader in): Tạo một LineNumberReader sử dụng kích thước bộ đệm mặc định để đọc từ luồng ký tự in.

↳ LineNumberReader(Reader in, int sz): Tạo một LineNumberReader với kích thước bộ đệm sz để đọc từ luồng ký tự in.

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

Lớp LineNumberReader kế thừa từ BufferedReader và mở rộng thêm một số phương thức để quản lý số dòng. Dưới đây là danh sách tất cả các phương thức của lớp LineNumberReader trong Java:

↳ int getLineNumber(): Trả về số dòng hiện tại.

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

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

↳ 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 luồng.

↳ String readLine(): Đọc một dòng văn bản. Trả về dòng văn bản hoặc null nếu đã đến cuối luồng.

↳ 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().

↳ void setLineNumber(int lineNumber): Thiết lập số dòng hiện tại.

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

Ví dụ

Dưới đây là một ví dụ đơn giản về cách sử dụng LineNumberReader:

Ví dụ: Example.java

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

public class Example {
    public static void main(String[] args) {
        String text = "Dòng 1\nDòng 2\nDòng 3\n";
        try (LineNumberReader lineNumberReader = new LineNumberReader(new StringReader(text))) {
            String line;
            while ((line = lineNumberReader.readLine()) != null) {
                System.out.println("Số dòng " + lineNumberReader.getLineNumber() + ": " + line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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

Số dòng 1: Dòng 1
Số dòng 2: Dòng 2
Số dòng 3: Dòng 3

LineNumberReader kế thừa từ BufferedReader và cung cấp tính năng theo dõi số dòng đã đọc từ luồng đầu vào.

Ví dụ này minh họa cách sử dụng LineNumberReader để đọc từng dòng văn bản và hiển thị số dòng cùng với nội dung của từng dò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.”