java如何读取文件
读取文件的常用方法
Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法:
使用FileInputStream和BufferedInputStream读取二进制文件
try (FileInputStream fis = new FileInputStream("file.txt");
BufferedInputStream bis = new BufferedInputStream(fis)) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
// 处理读取到的数据
}
} catch (IOException e) {
e.printStackTrace();
}
使用FileReader和BufferedReader读取文本文件
try (FileReader fr = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fr)) {
String line;
while ((line = br.readLine()) != null) {
// 处理每一行文本
}
} catch (IOException e) {
e.printStackTrace();
}
使用Files类(Java 7+)
try {
List<String> lines = Files.readAllLines(Paths.get("file.txt"));
// 处理所有行
} catch (IOException e) {
e.printStackTrace();
}
使用Scanner类
try (Scanner scanner = new Scanner(new File("file.txt"))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 处理每一行
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
注意事项
- 使用try-with-resources语句确保资源自动关闭
- 处理大文件时应使用缓冲读取而非一次性读取全部内容
- 注意字符编码问题,特别是非ASCII文本文件
- 文件路径可以是相对路径或绝对路径
性能考虑
- 对于大文件,
BufferedReader比直接使用FileReader更高效 Files.readAllLines()适合读取小文件,大文件可能导致内存问题- 二进制文件处理通常比文本文件处理更快







