475 words
2 minutes
Java SE 系列(六):IO 流核心知识

AI 智能总结

Java SE 6 IO 流核心知识#

IO 流用于实现文件读写、数据传输,是 Java 数据持久化核心。本文精简讲解 File 类、字节流、字符流、缓冲流、资源释放,搭配极简可运行代码,清晰易懂。

一、File 文件类#

File 是文件 / 文件夹的操作工具,仅操作文件属性,不读写内容。可实现文件创建、删除、判断、路径获取。

// 创建文件对象
File file = new File("test.txt");
// 创建文件
if (!file.exists()) {
file.createNewFile();
}

二、字节流:万能读写#

适配所有文件(图片、视频、文档、文本),以字节为单位传输,基类:InputStream/OutputStream。

// 字节流写入文件
try (FileOutputStream fos = new FileOutputStream("test.txt")) {
fos.write("Java IO".getBytes());
} catch (IOException e) {
e.printStackTrace();
}

三、字符流:专属文本#

仅用于文本文件(txt、java、md),以字符为单位,自动适配编码,避免中文乱码。基类:Reader/Writer。

// 字符流读取文本
try (FileReader fr = new FileReader("test.txt")) {
char[] buf = new char[1024];
fr.read(buf);
System.out.println(new String(buf));
} catch (IOException e) {
e.printStackTrace();
}

四、缓冲流:高效优化#

普通 IO 单次读写效率低,缓冲流自带缓冲区,大幅提升读写速度,是开发首选。 字节缓冲流:BufferedInputStream/BufferedOutputStream
字符缓冲流:BufferedReader/BufferedWriter

// 高效读取文本
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
// 按行读取,极其便捷
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}

五、资源释放#

IO 流属于系统资源,使用后必须关闭,否则造成资源泄漏。 传统方式:finally 手动调用 close() 关闭流
推荐方式:JDK7+ try-with-resources,自动关闭资源,代码简洁

核心总结#

所有文件通用字节流,纯文本优先字符流。
日常开发一律使用缓冲流,替代普通基础流,效率更高。
File 只操作文件属性,不负责内容读写。
必须规范释放 IO 资源,try-with-resources 为最优写法。

Java SE 系列(六):IO 流核心知识
https://fuwari.vercel.app/posts/java-se-series/java-se-06-io/
Author
Zero02
Published at
2025-02-09
License
CC BY-NC-SA 4.0