news 2026/9/3 8:03:30

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/8/30 2:58:33

全国冠军代言资源平台排名

【标题】:体育冠军代言哪家好:专业深度测评,排名前五揭晓【开篇】:随着体育产业的蓬勃发展,体育冠军代言成为品牌宣传的重要手段。为了帮助消费者更好地了解市场上的冠军代言资源平台,我们特此进行了深度测…

作者头像 李华
网站建设 2026/8/21 12:36:44

苹果宣布专业图像编辑应用Pixelmator Pro即将登陆iPad

根据苹果关于即将推出的Apple Creator Studio的新闻稿,Pixelmator Pro将为iPad用户带来桌面级的设计体验。直观的触控操作让用户能够更轻松地在iPad上创建桌面级设计作品。全功能的图层侧边栏允许创作者使用图像、形状、文本甚至视频等多种独特元素来构建设计。智能…

作者头像 李华
网站建设 2026/8/21 12:36:54

告别文献 “乱炖”!宏智树 AI 手把手教你写出有灵魂的文献综述

作为深耕论文写作科普的教育博主,后台总能刷到这样的求助:“读了几十篇文献,写出来的综述像‘大杂烩’”“观点堆砌没逻辑,被导师批‘没找到研究缺口’”“参考文献格式错一堆,查重率还居高不下”。文献综述不是简单的…

作者头像 李华
网站建设 2026/8/23 14:57:48

0x3f第32天复习 (12;30-12:50)

子串基础前缀和思考前缀和的定义是什么和为k的子数组1min ac两数之和接雨水三数之和ac字母异位词分组ac最长连续序列ac移动零ac无重复字符的最长子串ac找到字符串中所有字母异位词ac滑动窗口最大值1min ac1min ac最小覆盖子串1min ac1min ac思考买卖股票的最佳时机1min ac1min …

作者头像 李华
网站建设 2026/8/25 5:42:41

大模型算法社招面试全攻略:技术要点+简历优化+代码题解析

本文作者分享了从国企跳槽至大模型算法领域社招的完整经历。详细介绍了职业规划考量、简历准备技巧,以及大模型相关技术面试要点,包括SFT、RAG、Agent等热门技术方向。同时提供了常见代码题考察情况和业务方向分析,为想进入大模型领域的求职者…

作者头像 李华
网站建设 2026/8/29 10:20:33

算法题 增减字符串匹配

942. 增减字符串匹配 问题描述 给定只含 "I"(增加)和 "D"(减少)的字符串 s,令 n s.length。 根据 s 构造一个排列 perm(长度为 n 1),使得对于所有的 i&#x…

作者头像 李华