我需要通过写入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# 是否已经有一个可以轻松利用的字节流写入系统?
.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