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