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

时间:2012-05-29 11:10:39

标签: c# binary floating-point compression bytearray

我需要通过将intfloat / 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);

2 个答案:

答案 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)