C# Binary读写流 / BufferedStream缓存流 全套笔记
前置说明所有高级文件流都必须依赖 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刷新落硬盘所有流类必释放读写匹配不报错。

相关新闻

TAP/TUN与自定义网络协议栈

TAP/TUN与自定义网络协议栈

这个文章对TAP/TUN讲的比较清楚 https://blog.csdn.net/tjcwt2011/article/details/160653673 《深入高可用系统原理与设计》https://www.thebyte.com.cn/network/tuntap.html 一、在用户空间实现自定义网络协议栈 核心思想 内核协议栈是个黑盒——你想改 TCP 拥塞控制算法…

2026/6/23 15:59:57阅读更多 →
江科大PWM笔记:呼吸灯、舵机控制、电机调速

江科大PWM笔记:呼吸灯、舵机控制、电机调速

*psc预分频器,决定计数脉冲的频率arr自动重装载寄存器,决定了多久是一个周期ccr捕获/比较寄存器,决定占空比cnt计数器寄存器,不能写,只能读1在理解呼吸灯原理之前,先了解一些基本公式:1. 频率公…

2026/6/23 15:59:57阅读更多 →
告别重复操作!OpenClaw 2.7.9 电脑自动化完整落地实操

告别重复操作!OpenClaw 2.7.9 电脑自动化完整落地实操

🔍一、前言 OpenClaw 是一款备受追捧的高效本地 AI 自动化工具,支持完全离线运行,不依赖外网连接或云端账号绑定,通过智能 AI 逻辑自主操控各类电脑操作。最新 v2.7.9 版本已内置完整运行环境、配套依赖库及多系统适配配置&#…

2026/6/23 15:59:57阅读更多 →
终极指南:如何在电脑上用QtScrcpy玩转安卓手游

终极指南:如何在电脑上用QtScrcpy玩转安卓手游

终极指南:如何在电脑上用QtScrcpy玩转安卓手游 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy 想要在电脑大屏上流畅玩手游?想用键盘鼠标精准操作《和平精英…

2026/6/23 17:10:11阅读更多 →
hongyangWeixinArticles项目实战教程:如何将公众号文章转化为结构化知识库

hongyangWeixinArticles项目实战教程:如何将公众号文章转化为结构化知识库

hongyangWeixinArticles项目实战教程:如何将公众号文章转化为结构化知识库 【免费下载链接】hongyangWeixinArticles 主要用于记录微信公众号所推送的所有文章,公众号:hongyangAndroid 项目地址: https://gitcode.com/gh_mirrors/ho/hongya…

2026/6/23 17:10:11阅读更多 →
EthereumJS-TX迁移指南:从独立库到EthereumJS VM monorepo的无缝过渡

EthereumJS-TX迁移指南:从独立库到EthereumJS VM monorepo的无缝过渡

EthereumJS-TX迁移指南:从独立库到EthereumJS VM monorepo的无缝过渡 【免费下载链接】ethereumjs-tx Project is in active development and has been moved to the EthereumJS VM monorepo. 项目地址: https://gitcode.com/gh_mirrors/et/ethereumjs-tx Et…

2026/6/23 17:10:11阅读更多 →
Awaken:终极跨平台EPUB阅读器 - 基于WebDAV的免费全平台同步解决方案

Awaken:终极跨平台EPUB阅读器 - 基于WebDAV的免费全平台同步解决方案

Awaken:终极跨平台EPUB阅读器 - 基于WebDAV的免费全平台同步解决方案 【免费下载链接】Awaken 一个基于WebDAV的全平台EPUB阅读器,支持笔记、进度、书签同步,支持Kindle笔记导入。 项目地址: https://gitcode.com/gh_mirrors/aw/Awaken …

2026/6/23 17:10:11阅读更多 →
10分钟上手Anycost GAN:Jupyter Notebook交互式实验教程 [特殊字符]

10分钟上手Anycost GAN:Jupyter Notebook交互式实验教程 [特殊字符]

10分钟上手Anycost GAN:Jupyter Notebook交互式实验教程 🚀 【免费下载链接】anycost-gan [CVPR 2021] Anycost GANs for Interactive Image Synthesis and Editing 项目地址: https://gitcode.com/gh_mirrors/an/anycost-gan Anycost GAN是一个革…

2026/6/23 17:10:11阅读更多 →
PowerCLI-Example-Scripts最佳实践:社区脚本的质量控制与维护

PowerCLI-Example-Scripts最佳实践:社区脚本的质量控制与维护

PowerCLI-Example-Scripts最佳实践:社区脚本的质量控制与维护 【免费下载链接】PowerCLI-Example-Scripts 项目地址: https://gitcode.com/gh_mirrors/po/PowerCLI-Example-Scripts PowerCLI-Example-Scripts是VMware PowerCLI的社区脚本集合,提…

2026/6/23 17:05:10阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/23 7:04:52阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/23 1:55:32阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/23 5:55:37阅读更多 →
2026年京东云 618 活动 Hermes Agent/OpenClaw配置Token Plan新手必看指南

2026年京东云 618 活动 Hermes Agent/OpenClaw配置Token Plan新手必看指南

2026年京东云 618 活动 Hermes Agent/OpenClaw配置Token Plan新手必看指南。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流…

2026/6/23 0:00:38阅读更多 →
2026年北京电子沙盘制作公司深度评测:从技术选型到落地效果,谁在真正定义“数字+实体”的融合边界?

2026年北京电子沙盘制作公司深度评测:从技术选型到落地效果,谁在真正定义“数字+实体”的融合边界?

模块一:行业背景——百亿赛道爆发,北京市场的特殊性与选型困局2026年,电子沙盘行业已走过“要不要做”的讨论,进入“找谁做、怎么做”的深水区。据行业研究机构数据,2025年国内电子沙盘市场规模已突破85亿元&#xff0…

2026/6/23 0:00:38阅读更多 →
音视频场景下的 Java 开发者面试:技术与挑战

音视频场景下的 Java 开发者面试:技术与挑战

面试互联网大厂:从音视频场景看 Java 开发者的技能与挑战 在互联网大厂求职的面试中,Java 开发者往往需要面对严苛的技术问题。今天,我们将通过一位名叫燕双非的搞笑程序员与严肃的面试官之间的对话,看看在音视频场景下&#xff0…

2026/6/23 0:00:38阅读更多 →