我需要通过将int
和float
/ double
数据写入其中来构建字节流。如何在C#中轻松实现这一目标?我知道获取float变量的原始字节的方法,但C#是否已经有一个我可以轻松利用的字节流写入系统?
从bytearray读取浮点值:
uint floatBytes = .. // read 4 float bytes from byte[] array
float floatVal = *((float*)&floatBytes);
将浮点值写入bytearray:
float floatVal = ... // read a float from the float[] array
uint floatBytes = *((uint*)&floatVal);
答案 0 :(得分:4)
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.
答案 1 :(得分:1)