news 2026/6/10 16:53:53

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/10 14:23:27

Dify平台的财务预测建模能力初探

Dify平台的财务预测建模能力初探 在企业数字化转型不断加速的今天,财务部门正面临前所未有的挑战:不仅要应对海量数据的处理压力,还要在极短时间内提供准确、可解释的预测结果。传统的Excel模型和静态报表已难以满足管理层对“实时洞察”的需…

作者头像 李华
网站建设 2026/6/10 13:16:32

终极游戏模组管理指南:一站式解决方案

终极游戏模组管理指南:一站式解决方案 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为复杂的游戏模组安装而烦恼?XXMI启动器为您提供完整的一站式游…

作者头像 李华
网站建设 2026/6/9 17:57:16

NCM文件解码工具:突破音乐格式限制的实用指南

NCM文件解码工具:突破音乐格式限制的实用指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐的加密格式而烦恼吗?想要在任意播放器上畅听心爱的音乐吗?今天我将为你介绍一个简单…

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

完整备份指南:如何永久保存QQ空间所有历史数据

完整备份指南:如何永久保存QQ空间所有历史数据 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 想要永久保存QQ空间那些珍贵的青春回忆吗?GetQzonehistory是一个功…

作者头像 李华
网站建设 2026/6/10 8:10:35

Relight:AI光影魔术师!一键重塑照片光线质感

Relight:AI光影魔术师!一键重塑照片光线质感 【免费下载链接】Relight 项目地址: https://ai.gitcode.com/hf_mirrors/dx8152/Relight 导语 一款名为Relight的AI光影重塑模型近日引发关注,它基于Qwen-Image-Edit-2509大模型开发&…

作者头像 李华