前置说明所有高级文件流都必须依赖 FileStream 基础文件流相当于FileStream 是通道BinaryWriter/BinaryReader/BufferedStream 是工具。必备命名空间using System.IO;、using System.Text;一、BinaryWriter / BinaryReader 二进制读写流重点1. 核心作用专门用于二进制格式读写文件支持直接读写string、int、double、bool等任意数据类型无需手动字节转换比原生 FileStream 更简洁。2. 核心特点读写一一对应怎么写、怎么读写字符串就读字符串封装度极高不用手动Encoding转换字节数组底层依然依赖 FileStream 通道3. BinaryWriter 二进制写入完整代码// 二进制写入流程文件流 → 写入器 → Write写入 → 关闭释放 private void button1_Click(object sender, EventArgs e) { // 1. 创建基础文件流无则新建、有则覆盖、只写权限 FileStream file new FileStream(1.txt, FileMode.Create, FileAccess.Write); // 2. 绑定文件流创建二进制写入工具 BinaryWriter bw new BinaryWriter(file); // 3. 直接写入任意数据类型无需转字节 bw.Write(世界杯中国什么时候进); // 4. 关闭工具和文件流 bw.Close(); file.Close(); // 5. 释放资源 bw.Dispose(); file.Dispose(); }4. BinaryReader 二进制读取完整代码// 二进制读取流程文件流 → 读取器 → 对应类型读取 → 关闭释放 private void button2_Click(object sender, EventArgs e) { // 1. 只读方式打开文件 FileStream file new FileStream(1.txt, FileMode.Open, FileAccess.Read); // 2. 创建二进制读取工具 BinaryReader br new BinaryReader(file); // 3. 对应写入类型读取写入string就必须ReadString string ss br.ReadString(); this.Text ss; // 4. 关闭释放 br.Close(); file.Close(); br.Dispose(); file.Dispose(); }5. 必考核心规则读写类型必须严格匹配Write(string) → ReadString()否则报错或乱码BinaryWriter 写入的文件自带二进制格式头记事本打开是乱码只能用 BinaryReader 正常读取必须先关外层工具(Binary)再关底层文件流(FileStream)二、BufferedStream 缓存文件流1. 核心原理BufferedStream缓存缓冲流不直接频繁读写硬盘先把数据读写到内存缓存区减少磁盘IO次数大幅提升大文件读写速度。核心优势硬盘读写慢、内存读写快用缓存中转优化性能。2. 核心方法Flush()强制清空缓存区将缓存数据写入磁盘防止数据滞留内存丢失Read()从缓存区读取数据Write()写入数据到缓存区3. BufferedStream 写入代码注释版// 创建缓存流绑定文件创建通道 BufferedStream buffer new BufferedStream(File.Create(1.txt)); // 字符串转字节数组 byte[] bs Encoding.Default.GetBytes(主要把本地数据读取到缓存区里面); // 写入缓存区不是直接写硬盘 buffer.Write(bs, 0, bs.Length); // 强制刷新缓存数据落地写入硬盘 buffer.Flush(); // 关闭释放 buffer.Close();4. BufferedStream 读取代码循环读取完整版// 打开文件并绑定缓存流 BufferedStream b1 new BufferedStream(File.OpenRead(1.txt)); // 根据缓存流长度创建字节数组 byte[] bs new byte[b1.Length]; string ss ; // 循环读取返回值0 代表还有数据可读 while (b1.Read(bs, 0, bs.Length) 0) { ss Encoding.Default.GetString(bs); Console.WriteLine(Encoding.Default.GetString(bs)); } this.Text ss; b1.Close();5. 读取核心考点Read()返回值 0存在未读完数据继续循环Read()返回值 0数据读取完毕结束读取大文件必须循环读取不能一次性读完三、三种文件流核心区别考试必考对比流类型特点适用场景FileStream基础字节流手动转编码无缓存所有文件底层读写、小文件通用Binary读写支持直接读写任意数据类型无需转字节二进制加密存储保存对象、数字、混合类型数据BufferedStream内存缓存中转减少磁盘IO速度快大文件高速读写四、全套易错点汇总Binary 读写类型必须一一对应写错读取直接报错BufferedStream 写入必须调用Flush()否则数据滞留内存、写入失败所有流必须 Close Dispose否则文件占用Binary 保存的文件乱码是正常二进制格式无需解码缓存流读取必须 while 循环判断返回值防止漏读数据五、IO流专属背诵口诀基础File通通道Binary读写类型套二进制存乱码常对应读取才正常缓存Buff提速快Flush刷新落硬盘所有流类必释放读写匹配不报错。