原文: https://howtodoinjava.com/java/io/java-io-linenumberreader-example-to-read-file-line-by-line/
如果您只想按特定要求逐行读取文件的内容,则LineNumberReader可能是您的理想选择。 LineNumberReader是BufferedReader类的子类,可让您跟踪当前正在处理的行。 行号从 0 开始。每当LineNumberReader在包装的Reader返回的字符中遇到行终止符时,行号都会递增。
您可以通过调用getLineNumber()方法来获取当前行号。 LineNumberReader还使您可以通过调用setLineNumber()方法将当前行号重置为另一个号码(为什么要这样做?)。
如果您要分析可能包含错误的文本文件,则行号可能会很方便。 向用户报告错误时,如果您的错误消息中包含遇到错误的行号,则更容易纠正错误。
让我们建立一个简单的示例来展示LineNumberReader的特性。
在下面的示例中,这是我将使用LineNumberReader读取的文件内容。
firstName=LokeshlastName=Guptablog=howtodoinjavatechnology=java
LineNumberReader示例
这是使用LineNumberReader逐行读取以上文件内容的代码。
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{//Construct the LineNumberReader objectlineNumberReader = new LineNumberReader(new FileReader(filename));//Print initial line numberSystem.out.println("Line " + lineNumberReader.getLineNumber());//Setting initial line numberlineNumberReader.setLineNumber(5);//Get current line numberSystem.out.println("Line " + lineNumberReader.getLineNumber());//Read all lines now; Every read increase the line number by 1String line = null;while ((line = lineNumberReader.readLine()) != null){System.out.println("Line " + lineNumberReader.getLineNumber() + ": " + line);}}catch (Exception ex){ex.printStackTrace();} finally{//Close the LineNumberReadertry {if (lineNumberReader != null){lineNumberReader.close();}} catch (IOException ex){ex.printStackTrace();}}}}Output:Line 0Line 5Line 6: firstName=LokeshLine 7: lastName=GuptaLine 8: blog=howtodoinjavaLine 9: technology=java
这就是将这个有用的课程向你介绍的知识的全部。
祝您学习愉快!
