news 2026/6/10 19:48:44

3.7 BinaryReader和BinaryWriter

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3.7 BinaryReader和BinaryWriter

1.BinaryReader和BinaryWriter简介

2.BinaryReader和BinaryWriter示例


1.BinaryReader和BinaryWriter简介

a.BinaryWriter:.NET 基本类型(intfloatstringbyte[])写入流(FileStream、MemoryStream等),按二进制 格式存储(而非文本),体积更小、读写更快 b.BinaryReader:从流中读取由BinaryWriter写入的二进制数据,还原为对应.NET类型,需严格匹配写入顺序

2.BinaryReader和BinaryWriter示例

usingSystem;usingSystem.IO;// ==================== 写入二进制数据(BinaryWriter) ====================publicstaticvoidWriteBinaryFile(stringpath){// 1. 创建文件流(FileMode.Create:覆盖已有文件,FileAccess.Write:只写)using(FileStreamfs=newFileStream(path,FileMode.Create,FileAccess.Write)){// 2. 创建BinaryWriter,关联文件流(可选指定编码,默认UTF-8)using(BinaryWriterwriter=newBinaryWriter(fs)){// 3. 按顺序写入不同类型数据(核心:写入顺序必须和读取顺序一致)writer.Write(100);// 写入int(4字节)writer.Write(3.14f);// 写入float(4字节)writer.Write(true);// 写入bool(1字节)writer.Write("Unity存档");// 写入string(先存长度,再存字节)writer.Write(newbyte[]{0x01,0x02,0x03});// 写入字节数组}// using结束自动释放writer,关闭流}}// ==================== 读取二进制数据(BinaryReader) ====================publicstaticvoidReadBinaryFile(stringpath){if(!File.Exists(path))return;using(FileStreamfs=newFileStream(path,FileMode.Open,FileAccess.Read)){using(BinaryReaderreader=newBinaryReader(fs)){// 3. 按写入顺序读取数据(顺序错会导致数据解析错误)intintValue=reader.ReadInt32();floatfloatValue=reader.ReadSingle();boolboolValue=reader.ReadBoolean();stringstrValue=reader.ReadString();byte[]byteArr=reader.ReadBytes(3);// 读取指定长度的字节数组// 输出验证Console.WriteLine($"Int:{intValue}");// 输出:100Console.WriteLine($"Float:{floatValue}");// 输出:3.14Console.WriteLine($"Bool:{boolValue}");// 输出:TrueConsole.WriteLine($"String:{strValue}");// 输出:Unity存档Console.WriteLine($"ByteArr:{BitConverter.ToString(byteArr)}");// 01-02-03}}}// 调用示例WriteBinaryFile("saveData.bin");ReadBinaryFile("saveData.bin");
using(MemoryStreamms=newMemoryStream())using(BinaryWriterwriter=newBinaryWriter(ms)){writer.Write(123);writer.Write("内存数据");// 重置指针到起始位置,才能读取数据ms.Position=0;using(BinaryReaderreader=newBinaryReader(ms)){intnum=reader.ReadInt32();// 正确读取123stringstr=reader.ReadString();// 正确读取"内存数据"}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:35:59

微软承诺解决AI数据中心社区争议问题

微软公司今日宣布了一项名为"社区优先AI基础设施"的五点计划,旨在平息围绕其新建AI数据中心引发的社区愤怒情绪。这项举措是在大型科技公司面临日益严重的数据中心项目反对浪潮背景下推出的。为了满足耗电巨大的AI产品需求,科技公司的数据中心…

作者头像 李华
网站建设 2026/6/10 14:56:14

Python+Vue的私人定制装修设计系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 传统的装修…

作者头像 李华
网站建设 2026/6/9 22:46:26

EasyGBS算法算力平台在智慧安防视频监控中的应用实践

在数字化、智能化浪潮席卷全球的今天,传统安防体系正经历着深刻的变革。随着GB28181国家标准的全面推广和实施,视频监控系统的标准化、网络化、智能化已成为智慧安防建设的必然要求。EasyGBS作为GB28181的算法算力平台,不仅解决了海量视频资源…

作者头像 李华
网站建设 2026/6/10 14:57:44

基于uni-app的儿童安全教育平台

第三章 系统分析 3.1 系统设计目标 儿童安全教育平台主要是为了方便管理儿童安全教育的信息。也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵…

作者头像 李华
网站建设 2026/6/10 19:46:09

【拯救HMI】HMI国际化设计:多语言界面的十大注意事项

在全球化制造的今天,一台由中国设计的设备可能安装在德国工厂,由越南操作员使用。HMI的国际化(i18n)与本地化(L10n)设计,是产品成功进入国际市场的“通行证”,其核心目标是消除语言障…

作者头像 李华
网站建设 2026/6/10 14:52:23

5 款 AI 写论文哪个好?实测宏智树 AI:毕业论文的 “学术全能王”

作为深耕论文写作科普的教育测评博主,每年毕业季后台都会被 “AI 写论文工具怎么选” 的提问淹没。市面上的 AI 论文工具五花八门,但真正能兼顾专业性、合规性与实用性的却寥寥无几。为此,我实测了 5 款当下热门的真实 AI 写论文工具 ——宏智…

作者头像 李华