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