Java 读取文本文件的基本方法
在Java编程中,读取文本文件是一个常见的需求,无论是处理日志文件、配置文件还是其他任何文本数据,掌握如何读取文本文件是至关重要的,以下是一些常用的方法来读取Java中的文本文件。

使用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) {
try (FileReader fileReader = new FileReader("example.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Scanner类
Scanner类提供了另一种读取文件的方法,它比BufferedReader更简单,但可能不如它灵活。
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");
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
使用InputStreamReader和InputStream类
如果你需要更底层的文件操作,可以使用InputStreamReader和InputStream类,这些类提供了对文件字节的直接访问。

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
public class ReadTextFileWithInputStream {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("example.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Java 7的Files和Paths类
从Java 7开始,Java引入了Files和Paths类,这些类提供了新的文件操作API,使得文件操作更加简洁。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
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();
}
}
}
使用java.nio.file.Files的lines()方法
Files.lines()方法是一个高层次的API,它可以返回一个Stream<String>,这使得你可以使用Java 8的流操作来处理文件。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.stream.Stream;
public class ReadTextFileWithStream {
public static void main(String[] args) {
try (Stream<String> stream = Files.lines(Paths.get("example.txt"))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
在Java中读取文本文件有多种方法,每种方法都有其适用场景,选择哪种方法取决于你的具体需求,例如是否需要处理大文件、是否需要流式处理、是否需要使用高级的流操作等,通过理解这些不同的方法,你可以根据项目需求选择最合适的读取文本文件的方式。



















