在C#中,使用BinaryReader
类可以方便地处理流式数据。BinaryReader
是从System.IO
命名空间中提供的,用于从二进制流中读取基本数据类型和自定义数据类型。以下是如何使用BinaryReader
处理流式数据的一些示例:
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}");
}
}
}
}
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}");
}
}
}
}
在这些示例中,我们首先创建了一个FileStream
或MemoryStream
对象,然后使用BinaryReader
对象从流中读取基本数据类型和自定义数据类型。注意,当使用BinaryReader.ReadObject<T>
方法读取自定义数据类型时,需要确保已将该类的类型添加到程序中。