Java IO 不再难!手把手带你玩转文件读取与写入
前言
在大一 Java 的学习中,IO 流是文件操作的核心知识点。很多同学刚接触 IO 时,经常分不清字节流和字符流,读写文字出现乱码,文件拷贝运行报错,关闭流操作经常遗漏。 本篇文章面向大一零基础同学,全部知识点贴合课堂教学大纲,没有 NIO、底层源码等超纲内容,配套完整可运行代码,课后作业、上机练习可以直接参考。
一、IO 流基础概念
IO 代表输入与输出,程序通过 IO 流完成内存与硬盘文件之间的数据传输。
- 输入流(Input):读取硬盘当中的文件数据,加载到程序内存里。
- 输出流(Output):把内存中的数据写入到硬盘文件当中。
按照读取数据的单位,可以将 IO 流分为两大类:
1. 字节流
一次读取一个字节,属于万能流,图片、视频、压缩包、文本文档都可以读写。 顶层父类:InputStream(字节输入流)、OutputStream(字节输出流)。
2. 字符流
一次读取一个字符,专门用来操作文本文档,内置编码处理,读写中文不会产生乱码。 顶层父类:Reader(字符输入流)、Writer(字符输出流)。
大一学习记忆口诀:多媒体文件选用字节流,纯文本文件优先使用字符流。
二、字节流代码实操
2.1 文件字节输入流 FileInputStream
读取本地文件内容,打印到控制台。
2.2 文件字节输出流 FileOutputStream
向本地文件写入文本数据,文件不存在会自动创建。
2.3 文件拷贝(上机高频考题)
利用字节流完成图片、文档的复制,设置字节数组缓冲区提升读写速度。
三、字符流读写文本
字符流专门用于处理 txt 文本,中文读写不会出现乱码。
3.1 字符输入流 FileReader
3.2 字符输出流 FileWriter
四、IO 流常见易错点
- 流必须关闭:IO 流属于系统资源,程序运行结束后一定要调用 close () 方法释放资源,防止文件被占用。
- 中文乱码问题:读取中文文本优先使用字符流,不要直接使用字节流读取文字。
- 数组拷贝边界:文件拷贝时,读取到的有效字节长度需要传入 write 方法,避免末尾多余数据写入文件。
- 路径书写:Windows 系统文件路径分隔符使用双反斜杠
\\,Linux 系统使用斜杠/。
五、总结
大一阶段的 IO 学习只需要掌握字节流、字符流基础用法,熟练完成文件读取、写入、拷贝三大核心操作,就可以应对期末考核与上机实训。缓冲流、装饰流等进阶内容,可以等到后续课程再进行深入学习。
