在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#中进行二进制文件读写的基本操作和注意事项。在实际项目中,我们可能需要根据具体需求来调整这些方法,例如处理特定的数据结构或编码规则。熟悉这些基础操作对于处理二进制数据至关重要。
2026-05-17 21:57:41 17KB 2二进制
1