LineNumberReader是一个缓冲的字符输入流,用于跟踪行号。 它是BufferedReader的子类,它提供了另外的方法setLineNumber()getLineNumber(),分别用于设置和获取当前行号。

下面示例代码显示如何使用这个类。

以下是:LineNumberReaderExample.java 的示例输入文件。

file.txt -

Hello Friends!
This is an example of LineNumberReader
LineNumberReader is a subclass of BufferedReader

代码文件:LineNumberReaderExample.java -

package com.yiibai.tutorial.io;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;

/**
 * @author yiibai
 */
public class LineNumberReaderExample {
    public static void main(String[] args) {
        File file = new File("file.txt");
        FileReader fileReader = null;
        LineNumberReader lineNumberReader = null;
        try {
            fileReader = new FileReader(file);
            lineNumberReader = new LineNumberReader(fileReader);

            //Get Line number
            int lineNum=lineNumberReader.getLineNumber();
            System.out.println("Line number : "+lineNum);

            //Set line number
            lineNumberReader.setLineNumber(2);

            //Get Line Number
            lineNum=lineNumberReader.getLineNumber();
            System.out.println("Line number : "+lineNum);

            String line=null;
            while((line=lineNumberReader.readLine())!=null){
                System.out.println(line);
            }

            //Get Line Number
            lineNum=lineNumberReader.getLineNumber();
            System.out.println("Line number : "+lineNum);


        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                if(fileReader!=null){
                    fileReader.close();
                }
                if(lineNumberReader!=null){
                    lineNumberReader.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

执行上面示例代码,得到以下结果:

Line number : 0
Line number : 2
Hello Friends!
This is an example of LineNumberReader
LineNumberReader is a subclass of BufferedReader
Line number : 5