C# 中的可写字节流样式功能

本文关键字:字节流 样式 功能 | 更新日期: 2023-09-27 18:35:48

我需要通过写入int并将/float double 数据写入其中来构建一个字节流。如何在 C# 中轻松完成此操作?我知道获取浮点变量原始字节的方法,但是 C# 是否已经有一个可以轻松利用的字节流写入系统?

从字节数组读取浮点值:

uint floatBytes = .. // read 4 float bytes from byte[] array
float floatVal = *((float*)&floatBytes);

将浮点值写入字节数组:

float floatVal = ... // read a float from the float[] array
uint floatBytes = *((uint*)&floatVal);

C# 中的可写字节流样式功能

C# 是否已经有一个可以轻松利用的字节流写入系统?

.NET 库为此有一对流装饰器,BinaryWriter 和 BinaryReader。

var reader = new BinaryReader(someStream);
float f1 = reader.ReadSingle();   // Single == float
double d1 = reader.ReadDouble();
string s1 = reader.ReadString();  // the Writer issues a length-prefix.

使用 BinaryReader 和 BinaryWriter