Java LineNumberReader 示例

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