Java读取文本文件的方法有哪些?详细步骤和示例教程?
- 后端开发
- 2025-10-10
- 5
在Java中读取文本文件是一个常见的需求,可以通过多种方式实现,以下是一些常用的方法,包括使用FileReader、BufferedReader、Scanner以及使用Java 7及以上版本的Files类。
使用FileReader和BufferedReader
FileReader和BufferedReader是Java中读取文本文件的传统方式,以下是一个简单的例子:

import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; public class ReadTextFile { public static void main(String[] args) { FileReader fileReader = null; BufferedReader bufferedReader = null; try { fileReader = new FileReader("example.txt"); bufferedReader = new BufferedReader(fileReader); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } if (fileReader != null) { fileReader.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }
使用Scanner
Scanner类也可以用来读取文本文件,它提供了简单的文本解析功能,以下是如何使用Scanner读取文件的例子:
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadTextFileWithScanner { public static void main(String[] args) { File file = new File("example.txt"); Scanner scanner = null; try { scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (scanner != null) { scanner.close(); } } } }
使用Java 7及以上版本的Files类
从Java 7开始,java.nio.file.Files类提供了更高级的文件操作功能,包括读取文件,以下是如何使用Files类读取文件的例子:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; public class ReadTextFileWithFiles { public static void main(String[] args) { try { List<String> lines = Files.readAllLines(Paths.get("example.txt")); for (String line : lines) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
表格对比
下面是一个表格,比较了上述三种方法的优缺点:

| 方法 | 优点 | 缺点 |
|---|---|---|
| FileReader和BufferedReader | 简单易用,适用于简单的文本文件读取 | 性能可能不如Files类 |
| Scanner | 简单易用,提供了一些文本解析功能 | 性能可能不如Files类 |
| Files类 | 性能好,功能强大 | 代码稍微复杂 |
FAQs
Q1:如何处理文件读取过程中可能出现的异常?
A1: 在读取文件时,可能会遇到各种异常,如FileNotFoundException(文件不存在)、IOException(输入/输出异常)等,你应该在代码中捕获这些异常,并适当处理它们,例如打印错误信息或抛出自定义异常。
Q2:如何读取文件中的每一行,并对其执行某些操作?
A2: 你可以使用FileReader和BufferedReader的readLine()方法、Scanner的nextLine()方法或Files类的readAllLines()方法来逐行读取文件,你可以对每一行执行所需的操作,例如打印、解析或转换数据。