在 Java 中读取纯文本文件的常见方式是使用 BufferedReader
或 Files
类。以下是两种常见的方法:
BufferedReader
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String filePath = "example.txt"; // 文件路径
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // 打印每行内容
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
优点:
- 逐行读取文件,适合大文件。
- 自动关闭资源(使用 try-with-resources
)。
Files
类从 Java 7 开始,java.nio.file.Files
提供了更简单的方法来读取文件。
List
中import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class ReadFileExample {
public static void main(String[] args) {
String filePath = "example.txt"; // 文件路径
try {
List<String> lines = Files.readAllLines(Paths.get(filePath));
for (String line : lines) {
System.out.println(line); // 打印每行内容
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
String
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String filePath = "example.txt"; // 文件路径
try {
String content = new String(Files.readAllBytes(Paths.get(filePath)));
System.out.println(content); // 打印文件内容
} catch (IOException e) {
e.printStackTrace();
}
}
}
优点:
- 代码简洁,适合较小文件。
Scanner
Scanner
可以用来读取文件,并允许按分隔符处理文件内容。
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class ReadFileExample {
public static void main(String[] args) {
String filePath = "example.txt"; // 文件路径
try (Scanner scanner = new Scanner(new File(filePath))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line); // 打印每行内容
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedReader
,逐行读取内存占用更小。Files.readAllLines()
或 Files.readAllBytes()
简单快捷。Scanner
。根据你的具体需求选择适合的方式即可。