java如何读写
Java 文件读写操作
文件读取
使用 java.io 或 java.nio 包进行文件读取操作。
使用 BufferedReader 读取文本文件
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
使用 Files 类(Java NIO)读取文件
try {
List<String> lines = Files.readAllLines(Paths.get("file.txt"));
lines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
文件写入
使用 BufferedWriter 写入文本文件
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
bw.write("Hello, World!");
bw.newLine();
} catch (IOException e) {
e.printStackTrace();
}
使用 Files 类(Java NIO)写入文件
try {
Files.write(Paths.get("output.txt"), "Hello, World!".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
二进制文件读写
使用 FileInputStream 和 FileOutputStream

// 读取二进制文件
try (FileInputStream fis = new FileInputStream("input.bin")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
// 处理二进制数据
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入二进制文件
try (FileOutputStream fos = new FileOutputStream("output.bin")) {
byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // "Hello" 的二进制表示
fos.write(data);
} catch (IOException e) {
e.printStackTrace();
}
使用 ObjectInputStream 和 ObjectOutputStream 序列化对象
// 写入对象
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.dat"))) {
oos.writeObject(new MySerializableClass());
} catch (IOException e) {
e.printStackTrace();
}
// 读取对象
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.dat"))) {
MySerializableClass obj = (MySerializableClass) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
注意事项
- 使用
try-with-resources语句确保流自动关闭 - 处理
IOException异常 - 对于大文件,使用缓冲流提高性能
- 考虑使用
Charset指定字符编码(如 UTF-8)






