java如何打开文件
使用 FileInputStream 打开文件
通过 FileInputStream 可以直接读取文件的字节流,适用于二进制文件或原始数据读取。
import java.io.FileInputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("path/to/file.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data); // 逐字节读取并转换为字符
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 FileReader 打开文本文件
FileReader 是字符流,更适合读取文本文件,会自动处理字符编码。
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (FileReader reader = new FileReader("path/to/file.txt")) {
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data); // 逐字符读取
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用 BufferedReader 高效读取文本
BufferedReader 提供缓冲功能,适合逐行读取大文本文件。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("path/to/file.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.util.List;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("path/to/file.txt"));
for (String line : lines) {
System.out.println(line); // 读取所有行到列表
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
- 文件路径可以是绝对路径(如
C:/file.txt)或相对路径(如src/file.txt)。 - 使用
try-with-resources语法确保流自动关闭,避免资源泄漏。 - 处理
IOException是必要的,尤其是文件不存在或权限不足时。






