java如何读取txt文件
使用 BufferedReader 读取文件
BufferedReader 是 Java 中用于高效读取文本文件的类,适合逐行读取内容。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
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();
}
}
}
使用 Files.readAllLines 读取文件(Java 7+)
Files.readAllLines 方法可以一次性读取文件的所有行,返回一个 List<String>。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;
public class ReadFile {
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();
}
}
}
使用 Scanner 读取文件
Scanner 类提供了更灵活的文本解析功能,适合按特定分隔符读取内容。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFile {
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 (FileNotFoundException e) {
e.printStackTrace();
}
}
}
使用 Files.lines 读取文件(Java 8+)
Files.lines 返回一个 Stream<String>,适合结合流式操作处理文件内容。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.stream.Stream;
public class ReadFile {
public static void main(String[] args) {
String filePath = "example.txt";
try (Stream<String> stream = Files.lines(Paths.get(filePath))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
- 文件路径可以是绝对路径或相对路径(相对于项目根目录)。
- 使用
try-with-resources语法可以自动关闭资源,避免内存泄漏。 - 处理大文件时,建议使用
BufferedReader或Files.lines逐行读取,避免内存溢出。






