c#

c# binaryreader如何处理流式数据

小樊
82
2024-11-24 16:27:00
栏目: 编程语言

在C#中,使用BinaryReader类可以方便地处理流式数据。BinaryReader是从System.IO命名空间中提供的,用于从二进制流中读取基本数据类型和自定义数据类型。以下是如何使用BinaryReader处理流式数据的一些示例:

  1. 从文件中读取数据:
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 创建一个FileStream对象,指向要读取的文件
        using (FileStream fileStream = new FileStream("example.bin", FileMode.Open, FileAccess.Read))
        {
            // 创建一个BinaryReader对象,用于读取文件中的数据
            using (BinaryReader binaryReader = new BinaryReader(fileStream))
            {
                // 读取基本数据类型
                int intValue = binaryReader.ReadInt32();
                float floatValue = binaryReader.ReadSingle();
                double doubleValue = binaryReader.ReadDouble();
                char charValue = binaryReader.ReadChar();
                bool boolValue = binaryReader.ReadBoolean();

                // 读取字符串
                string stringValue = binaryReader.ReadString();

                // 读取自定义数据类型(假设有一个名为MyClass的类)
                MyClass myClass = binaryReader.ReadObject<MyClass>();

                Console.WriteLine($"Int Value: {intValue}");
                Console.WriteLine($"Float Value: {floatValue}");
                Console.WriteLine($"Double Value: {doubleValue}");
                Console.WriteLine($"Char Value: {charValue}");
                Console.WriteLine($"Boolean Value: {boolValue}");
                Console.WriteLine($"String Value: {stringValue}");
                Console.WriteLine($"MyClass Value: {myClass}");
            }
        }
    }
}
  1. 从内存中的字节数组读取数据:
using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 创建一个字节数组
        byte[] byteArray = new byte[] { 1, 2, 3, 4, 5 };

        // 创建一个MemoryStream对象,指向字节数组
        using (MemoryStream memoryStream = new MemoryStream(byteArray))
        {
            // 创建一个BinaryReader对象,用于读取字节数组中的数据
            using (BinaryReader binaryReader = new BinaryReader(memoryStream))
            {
                // 读取基本数据类型
                int intValue = binaryReader.ReadInt32();
                float floatValue = binaryReader.ReadSingle();
                double doubleValue = binaryReader.ReadDouble();
                char charValue = binaryReader.ReadChar();
                bool boolValue = binaryReader.ReadBoolean();

                // 读取字符串
                string stringValue = binaryReader.ReadString();

                // 读取自定义数据类型(假设有一个名为MyClass的类)
                MyClass myClass = binaryReader.ReadObject<MyClass>();

                Console.WriteLine($"Int Value: {intValue}");
                Console.WriteLine($"Float Value: {floatValue}");
                Console.WriteLine($"Double Value: {doubleValue}");
                Console.WriteLine($"Char Value: {charValue}");
                Console.WriteLine($"Boolean Value: {boolValue}");
                Console.WriteLine($"String Value: {stringValue}");
                Console.WriteLine($"MyClass Value: {myClass}");
            }
        }
    }
}

在这些示例中,我们首先创建了一个FileStreamMemoryStream对象,然后使用BinaryReader对象从流中读取基本数据类型和自定义数据类型。注意,当使用BinaryReader.ReadObject<T>方法读取自定义数据类型时,需要确保已将该类的类型添加到程序中。

0
看了该问题的人还看了