我们要将数据通过网络传输,因此需要将各种类型的数值转成byte[]。在.NET中,方法有两个:序列化和转换为Byte数组。
序列化:
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(mytream, doubleValue);
反序列化:
BinaryFormatter bf = new BinaryFormatter();
double doubleValue=(double)bf.Deserialize(mystream);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(mytream, doubleValue);
反序列化:
BinaryFormatter bf = new BinaryFormatter();
double doubleValue=(double)bf.Deserialize(mystream);
转成Byte Array:
BinaryWriter binWriter = new BinaryWriter (mystream);
binWriter.Write(doubleValue);
读取:
binReader.BaseStream.Position = 0;
BinaryReader binReader = new BinaryReader(mystream);
double doubleValue= binReader.ReadDouble();
BinaryWriter binWriter = new BinaryWriter (mystream);
binWriter.Write(doubleValue);
读取:
binReader.BaseStream.Position = 0;
BinaryReader binReader = new BinaryReader(mystream);
double doubleValue= binReader.ReadDouble();
序列化是将对象状态转换为可保持或可传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
如果在NET程序间交换数据,显然序列化是首选,尽管序列化后需要占用更多的存储空间。如果与其他程序交换,如NET和MFC程序间网络传输,则不可行,应该手动序列化或转换成Byte数组传输。
本文转自terryli51CTO博客,原文链接: http://blog.51cto.com/terryli/520814,如需转载请自行联系原作者