如何读文件 java
使用 FileReader 和 BufferedReader 读取文本文件
FileReader 用于读取字符文件,BufferedReader 提供缓冲以提高读取效率。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String path = "example.txt";
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Files 类快速读取小文件
Java 7+ 的 Files 类提供简便方法,适合一次性读取小文件内容。

import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String path = "example.txt";
try {
String content = new String(Files.readAllBytes(Paths.get(path)));
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 path = "example.txt";
try (Scanner scanner = new Scanner(new File(path))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Files.readAllLines 逐行读取为列表
将文件所有行直接读取到 List<String>,便于后续处理。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
String path = "example.txt";
try {
List<String> lines = Files.readAllLines(Paths.get(path));
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
- 文件路径可以是绝对路径(如
C:/data/example.txt)或相对路径(相对于项目根目录)。 - 使用
try-with-resources(如示例所示)确保资源自动关闭,避免内存泄漏。 - 大文件建议使用流式读取(如
BufferedReader),避免内存溢出。






