Java如何逐行读取文本文件内容?
在以下代码示例中,您将学习如何使用ApacheCommonsFileUtils.lineIterator()方法逐行读取文件内容。一次读取一行文件的内容,进行一些处理,然后立即将其从内存中释放,将降低程序使用的内存消耗。
下面的代码段为您提供了该FileUtils.lineIterator()方法的基本用法。您传递要读取的文件和要使用的编码。一个Iterator文件中的线路将被退回。使用hasNext()方法查看是否有要从迭代器读取的行。nextLine()方法将为您提供文件的下一行。
完成迭代器后,我们需要使用LineIterator.close()或LineIterator.closeQuietly()方法将其关闭。
package org.nhooo.example.commons.io;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import java.io.File;
import java.net.URL;
import java.util.Objects;
public class ReadFileLineByLine {
public static void main(String[] args) throws Exception {
// 从资源目录加载文件。
ClassLoader classLoader = ReadFileLineByLine.class.getClassLoader();
URL url = Objects.requireNonNull(classLoader.getResource("data.txt"),
"Resource could not be found.");
File file = new File(url.getFile());
try (LineIterator iterator = FileUtils.lineIterator(file, "UTF-8")) {
while (iterator.hasNext()) {
String line = iterator.nextLine();
System.out.println("line = " + line);
}
}
}
}在上面的示例中,我们从资源目录加载文件。这就是为什么我们使用该ClassLoader.getResource()方法。如果要从绝对路径加载文件,则可以简单地创建一个File对象并将绝对路径传递给该文件。
Maven依赖
commons-io commons-io 2.6
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下