LineNumberReader
LineNumberReader 是 BufferedReader 类的子类,它允许我们跟踪当前正在处理的行。
对于逐行读取文件,非常有用。
行编号从 0 开始(类似于数组索引)。
每当 LineNumberReader遇到被包装的 Reader的行终止符时,行号就会递增。
我们可以通过调用 getLineNumber() 方法获取当前行号。
LineNumberReader还使我们能够通过调用 setLineNumber() 方法将当前行号重置为另一个数字。
如果我们正在解析可能包含错误的文本文件,LineNumberReader会很方便。
向用户报告错误时,如果错误消息包含行号,则更容易更正错误。
www. On IT Road .com
LineNumberReader 示例
Java 程序使用 LineNumberReader 逐行读取文件
我们使用方法 lineNumberReader.readLine()迭代这些行,直到它返回 null。null值意味着文件中的所有行都已被读取。
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class LineNumberReaderExample
{
public static void main(String[] args)
{
readFromFile("app.properties");
}
private static void readFromFile(String filename)
{
LineNumberReader lineNumberReader = null;
try
{
// 构造LineNumberReader对象
lineNumberReader = new LineNumberReader(new FileReader(filename));
// 打印初始行号
System.out.println("Line " + lineNumberReader.getLineNumber());
// 设置初始行号
lineNumberReader.setLineNumber(5);
// 获取当前行号
System.out.println("Line " + lineNumberReader.getLineNumber());
// 逐行读取文件
String line = null;
while ((line = lineNumberReader.readLine()) != null)
{
System.out.println("Line " + lineNumberReader.getLineNumber() + ": " + line);
}
}
catch (Exception ex)
{
ex.printStackTrace();
} finally
{
//关闭LineNumberReader
try {
if (lineNumberReader != null){
lineNumberReader.close();
}
} catch (IOException ex){
ex.printStackTrace();
}
}
}
}
日期:2020-09-17 00:09:37 来源:oir作者:oir
