java中如何打开文件
使用 FileInputStream 读取文件
通过 FileInputStream 可以按字节流方式读取文件内容。适用于二进制文件或需要逐字节处理的场景。

import java.io.FileInputStream;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.txt")) {
int content;
while ((content = fis.read()) != -1) {
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 BufferedReader 读取文本文件
BufferedReader 提供逐行读取功能,适合处理文本文件,效率高于直接使用 FileReader。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReadExample {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Files 类(Java 7+)
java.nio.file.Files 提供简洁的 API 读取文件内容,适合一次性读取小文件。
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class FilesReadExample {
public static void main(String[] args) {
try {
String content = new String(Files.readAllBytes(Paths.get("example.txt")));
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 Scanner 读取文件
Scanner 适合按分隔符(如空格、换行)解析文件内容,常用于结构化文本处理。
import java.io.File;
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(new File("example.txt"))) {
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意事项
- 文件路径可以是绝对路径(如
C:/path/file.txt)或相对路径(相对于项目根目录)。 - 使用
try-with-resources语法确保流自动关闭,避免资源泄漏。 - 处理大文件时,优先使用
BufferedReader或分块读取,避免内存溢出。






