C#二进制读写文件

上传者: pxdmail | 上传时间: 2026-05-17 21:57:41 | 文件大小: 17KB | 文件类型: RAR
在C#编程中,二进制读写文件是处理数据的一种高效方式,尤其适用于存储原始字节流或结构化数据,如图像、音频文件、自定义数据格式等。本篇文章将深入探讨C#中二进制文件的读写操作,并通过实例代码来展示其用法。 我们要了解两个主要的类:`System.IO.BinaryReader`和`System.IO.BinaryWriter`。这两个类分别用于读取和写入二进制文件。它们提供了多种方法来处理各种基本数据类型,如整型、浮点型、字符串等。 **1. 使用BinaryWriter写入二进制文件** `BinaryWriter`类允许我们向流中写入基本数据类型。我们需要创建一个`FileStream`对象来打开或创建文件,然后使用这个流实例化`BinaryWriter`。以下是一个简单的例子: ```csharp using System; using System.IO; public class Program { public static void Main() { string filePath = "output.bin"; using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { using (BinaryWriter binaryWriter = new BinaryWriter(fileStream)) { // 写入整数 binaryWriter.Write(12345); // 写入浮点数 binaryWriter.Write(3.14159f); // 写入字符串(会先写入字符串长度,然后再写入字符) binaryWriter.Write("Hello, Binary!"); } } } } ``` 在这个例子中,我们创建了一个名为“output.bin”的二进制文件,并向其中写入了一个整数、一个浮点数和一个字符串。 **2. 使用BinaryReader读取二进制文件** 读取二进制文件时,我们使用`BinaryReader`类。与`BinaryWriter`类似,我们先打开文件流,然后创建`BinaryReader`实例。以下是读取前面创建的二进制文件的代码: ```csharp using System; using System.IO; public class Program { public static void Main() { string filePath = "output.bin"; using (FileStream fileStream = new FileStream(filePath, FileMode.Open)) { using (BinaryReader binaryReader = new BinaryReader(fileStream)) { // 读取整数 int number = binaryReader.ReadInt32(); Console.WriteLine("Read number: " + number); // 读取浮点数 float pi = binaryReader.ReadSingle(); Console.WriteLine("Read pi: " + pi); // 读取字符串 string text = binaryReader.ReadString(); Console.WriteLine("Read text: " + text); } } } } ``` 这段代码将从“output.bin”文件中读取之前写入的数据,并将其打印到控制台。 **注意点:** 1. 在使用`BinaryWriter`写入字符串时,它会自动写入字符串的长度,所以在使用`BinaryReader`读取字符串时,它也会读取这个长度信息。 2. 记得使用`using`语句来确保流和读者/写者在完成操作后被正确关闭和清理。 3. 二进制文件没有明确的文本格式,因此不适用于需要人直接阅读的文本数据。 4. 当读写结构化数据时,确保读取顺序与写入顺序一致,否则可能会出现数据混乱。 5. 对于大文件,可以分块读写以提高性能。 以上就是C#中进行二进制文件读写的基本操作和注意事项。在实际项目中,我们可能需要根据具体需求来调整这些方法,例如处理特定的数据结构或编码规则。熟悉这些基础操作对于处理二进制数据至关重要。

文件下载

资源详情

[{"title":"( 13 个子文件 17KB ) C#二进制读写文件","children":[{"title":"AlveoliClewWindow","children":[{"title":"1","children":[{"title":"AlveoliClewWindow","children":[{"title":"AlveoliClewWindow.suo <span style='color:#111;'> 17.00KB </span>","children":null,"spread":false},{"title":"AlveoliClewWindow","children":[{"title":"Program.cs <span style='color:#111;'> 548B </span>","children":null,"spread":false},{"title":"Resources","children":[{"title":"1.ico <span style='color:#111;'> 1.37KB </span>","children":null,"spread":false}],"spread":true},{"title":"AlveoliClewWindow.cs <span style='color:#111;'> 1015B </span>","children":null,"spread":false},{"title":"AlveoliClewWindow.csproj <span style='color:#111;'> 3.86KB </span>","children":null,"spread":false},{"title":"AlveoliClewWindow.resx <span style='color:#111;'> 8.43KB </span>","children":null,"spread":false},{"title":"Properties","children":[{"title":"AssemblyInfo.cs <span style='color:#111;'> 1.33KB </span>","children":null,"spread":false},{"title":"Settings.Designer.cs <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false},{"title":"Resources.resx <span style='color:#111;'> 6.04KB </span>","children":null,"spread":false},{"title":"Settings.settings <span style='color:#111;'> 249B </span>","children":null,"spread":false},{"title":"Resources.Designer.cs <span style='color:#111;'> 3.02KB </span>","children":null,"spread":false}],"spread":true},{"title":"AlveoliClewWindow.Designer.cs <span style='color:#111;'> 4.44KB </span>","children":null,"spread":false}],"spread":true},{"title":"AlveoliClewWindow.sln <span style='color:#111;'> 941B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明