news 2026/6/25 9:09:40

C# 二进制数据读写与BufferStream实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# 二进制数据读写与BufferStream实战

文章目录

  • 一, 二进制数据读写操作

  • 二,BufferStream字节流临时存储对象


一,二进制数据读写操作:

1,二进制原始数据读写操作 通过BinaryWriter和BinaryReader进行实现,写如何读取性比FileStream性能要高 写入的内容可以是各种数据类型

2, 创建文件流 FileStream 一般用于作为其他类读写操作的文件流

FileStream fs = new FileStream(@"1.txt", FileMode.Create, FileAccess.ReadWrite);

3,创建写入流 传入指定类型

BinaryWriter bw = new BinaryWriter(fs);

4,写入数据:

//3,写入内容 //bw.Write("你好余伟");//字符串类型 //bw.Write(10);//写入整形数据 //bw.Write(true);//写入布尔数据 //bw.Write(12.1);//浮点类型 //写入数据 //传递一个字节数组 bw.Write(new UTF8Encoding().GetBytes("TRUE")); bw.Write(new UTF8Encoding().GetBytes("10")); fs.Flush();// 确保w完整写入 bw.Close(); //关闭写入流 fs.Close();//关闭文件流

5,读取数据文件:

【1】,方法:读取的时候一般采用while循环去读具体代码如下

【2】, br.Close();//释放读取对象

fs.Close();//释放文件流

fs = new FileStream(@"1.txt", FileMode.Open, FileAccess.ReadWrite); //创建一个二进制读取对象 BinaryReader br = new BinaryReader(fs); //一般不会采用单独去读一个数据 //Console.WriteLine(br.ReadString()); //Console.WriteLine(br.ReadInt32());//读取整形的10 //Console.WriteLine(br.ReadBoolean()); //Console.WriteLine(br.ReadDouble()); //读取的时候一般采用while循环去读 byte[] buffer = new byte[fs.Length]; while (br.Read(buffer,0,buffer.Length)>0) //(br.Read(buffer,0,buffer.Length) = 0时证明读取完了 { Console .WriteLine(Encoding.UTF8.GetString(buffer)); } br.Close();//释放读取对象 fs.Close();//释放文件流 Console.ReadKey();

二,BufferStream字节流临时存储对象

1,BufferedStream 缓存区存储对象, 特点:读取性能比较快, 也需要包装其他文件流(FileStream)

2,创建临时存储对象:

BufferedStream b1 = new BufferedStream(File.Create(@"1.txt"));

3, 写入内容 传递一个字节数组

byte[] in1 = new UTF8Encoding().GetBytes("鱼不是余,萎不是伟,鱼是余伟的余,萎是余伟的伟");
b1.Write(in1, 0 , in1.Length);//从字节数组0的位置开始, 写字节数组长度内容


b1.Flush();
b1.Close();

4,创建读取存储对象

b1 = new BufferedStream(File.OpenRead(@"1.txt"));

byte[] arr = new byte[b1.Length];//定义数组存储读取的数据 长度为缓存区的大小

while(b1.Read(arr, 0, arr.Length)>0) //如果数据没读,继续读
{
Console.WriteLine(Encoding.UTF8.GetString(arr));//把arr转成字符串类型


}

Console.ReadKey();


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 23:50:24

Dify平台的古代语言风格模仿能力测试

Dify平台的古代语言风格模仿能力测试 在数字人文与AI技术交汇的今天,一个引人深思的问题浮现:机器能否真正“读懂”古文?更进一步——它是否能以古人之口吻言说,用《论语》的简练、唐诗的韵律、宋词的婉约来回应现代人的提问&…

作者头像 李华
网站建设 2026/6/21 11:36:28

Xenos终极DLL注入指南:快速掌握Windows进程注入技术

Xenos是一款专业的Windows动态链接库注入器,基于强大的Blackbone库构建,支持x86和x64架构进程注入操作。无论是安全研究、软件调试还是逆向工程,Xenos都能提供高效可靠的注入解决方案。 【免费下载链接】Xenos Windows dll injector 项目地…

作者头像 李华
网站建设 2026/6/22 23:24:24

上拉电阻如何防止浮空输入:通俗解释电路逻辑

上拉电阻如何防止浮空输入:从电路小白到工程师的实战解析你有没有遇到过这种情况——一个按钮明明没按,单片机却“误以为”被按下了?或者IC通信莫名其妙失败,查了半天发现是信号线“飘”了?问题很可能出在一个看似不起…

作者头像 李华
网站建设 2026/6/25 7:54:40

Dify在学术研究文献综述撰写中的辅助作用

Dify在学术研究文献综述撰写中的辅助作用 在当今科研环境中,一个不争的事实是:知识的增长速度早已远超个体的消化能力。以人工智能领域为例,每年仅arXiv上新增的相关论文就超过十万篇。面对如此海量信息,研究人员若仍依赖传统方式…

作者头像 李华
网站建设 2026/6/24 15:21:55

Dify平台的用户画像构建辅助功能介绍

Dify平台在用户画像构建中的实践与演进 在智能推荐、精准营销和个性化服务日益成为企业核心竞争力的今天,如何快速、准确地理解用户,已成为AI驱动业务增长的关键命题。传统的用户画像系统多依赖规则引擎和统计模型,面对复杂语义行为&#xff…

作者头像 李华