Java逐行读取文件:高效处理大文件的最佳实践
引言
本文是《如何使用Java逐行读取文件》系列文章的第1部分(共4部分)。在本部分中,你将学习到使用Java按行读取文件内容的不同方法。本文将详细介绍以下Java类及其方法:java.io.BufferedReader
、java.util.Scanner
、Files.readAllLines()
和 java.io.RandomAccessFile
。
使用BufferedReader逐行读取文件
你可以使用java.io.BufferedReader
的readLine()
方法逐行读取文件内容并将其存储为字符串。当读取到文件末尾时,该方法将返回null
。
以下是一个使用BufferedReader
逐行读取文件的示例程序:
使用BufferedReader逐行读取文件的Java代码
package com.scdev.readfileslinebyline;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileLineByLineUsingBufferedReader {
public static void main(String[] args) {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("sample.txt"));
String line = reader.readLine();
while (line != null) {
System.out.println(line);
// read next line
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
建议继续查阅 BufferedReader API 文档(Java SE 8)以深入学习。
使用Scanner逐行读取文件
你可以使用Scanner
类来打开一个文件,然后逐行读取其内容。
以下是一个使用Scanner
逐行读取文件的示例程序:
使用Scanner按行读取ReadFileLineByLineUsingScanner.java
文件。
这是文章《如何使用Java逐行读取文件》的第2部分(共4部分)。
package com.scdev.readfileslinebyline;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileLineByLineUsingScanner {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(new File("sample.txt"));
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
请继续学习Scanner API 文档(Java SE 8)来提升您的知识。
使用 Files 类逐行读取文件
java.nio.file.Files
是一个包含各种实用方法的工具类。其中的 readAllLines()
方法可以将文件的所有行读取到一个字符串列表中。
这是一个使用 Files
类逐行读取文件的示例程序。
Files
类逐行读取文件的 Java 代码。package com.scdev.readfileslinebyline;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class ReadFileLineByLineUsingFiles {
public static void main(String[] args) {
try {
List<String> allLines = Files.readAllLines(Paths.get("sample.txt"));
for (String line : allLines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
请继续阅读 Files API文档(Java SE 8),以深入学习。
使用RandomAccessFile逐行读取文件
你可以使用 RandomAccessFile
以读取模式打开文件,然后使用它的 readLine
方法逐行读取文件。
这是一个使用 RandomAccessFile
逐行读取文件的示例程序。
package com.scdev.readfileslinebyline;
import java.io.IOException;
import java.io.RandomAccessFile;
public class ReadFileLineByLineUsingRandomAccessFile {
public static void main(String[] args) {
try {
RandomAccessFile file = new RandomAccessFile("sample.txt", "r");
String str;
while ((str = file.readLine()) != null) {
System.out.println(str);
}
file.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
继续学习使用 RandomAccessFile API 文档(Java SE 8)。
结论
在本文中,您了解了使用 Java 逐行读取文件内容的不同方式。
继续通过更多的 Java 教程 来继续学习。