java如何读取txt
读取txt文件的基本方法
在Java中读取txt文件可以通过多种方式实现,常见的有FileReader、BufferedReader、Scanner或Files类。以下是具体实现方法。
使用BufferedReader逐行读取
BufferedReader适合读取大文件,效率较高。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadTxt {
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();
}
}
}
使用Scanner逐行读取
Scanner提供了更灵活的文本解析功能。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadTxt {
public static void main(String[] args) {
String filePath = "example.txt";
try (Scanner scanner = new Scanner(new File(filePath))) {
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
使用Files类一次性读取
Java 7及以上版本可以通过Files类快速读取全部内容。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadTxt {
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();
}
}
}
使用Files.readAllLines逐行读取为列表
将文件内容按行读取到List<String>中。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.io.IOException;
public class ReadTxt {
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();
}
}
}
注意事项
- 文件路径:确保路径正确,相对路径基于项目根目录,绝对路径需完整。
- 异常处理:必须处理
IOException或FileNotFoundException。 - 资源释放:使用
try-with-resources语法自动关闭流。 - 编码问题:若文件非UTF-8,需指定编码,例如:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "GBK"));
以上方法覆盖了大多数场景,根据需求选择合适的方式即可。






