c# – 带MemoryStream问题的BinaryFormatter
发布时间:2020-12-15 18:08:10 所属栏目:百科 来源:网络整理
导读:我正在测试BinaryFormatter,看看它对我有用,我有一个简单的问题: 当它与字符串HELLO一起使用时,我将MemoryStream转换为数组,它给出了29个维度,其中五个是维度末尾的实际数据: BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemorySt
|
我正在测试BinaryFormatter,看看它对我有用,我有一个简单的问题:
当它与字符串HELLO一起使用时,我将MemoryStream转换为数组,它给出了29个维度,其中五个是维度末尾的实际数据: BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] bytes;
string originalData = "HELLO";
bf.Serialize(ms,originalData);
ms.Seek(0,0);
bytes = ms.ToArray();
回报 - bytes {Dimensions:[29]} byte[]
[0] 0 byte
[1] 1 byte
[2] 0 byte
[3] 0 byte
[4] 0 byte
[5] 255 byte
[6] 255 byte
[7] 255 byte
[8] 255 byte
[9] 1 byte
[10] 0 byte
[11] 0 byte
[12] 0 byte
[13] 0 byte
[14] 0 byte
[15] 0 byte
[16] 0 byte
[17] 6 byte
[18] 1 byte
[19] 0 byte
[20] 0 byte
[21] 0 byte
[22] 5 byte
[23] 72 byte
[24] 69 byte
[25] 76 byte
[26] 76 byte
[27] 79 byte
[28] 11 byte
有没有办法只返回编码为字节的数据而没有所有无关的信息? 解决方法
所有这些无关的信息告诉另一个BinaryFormatter(将反序列化对象)正在反序列化的对象类型(在本例中为System.String).根据类型,它包含重建对象所需的其他信息(例如,如果它是StringBuilder,则容量也将在那里编码.
如果你想要做的就是将一个字符串填充到MemoryStream缓冲区中: using (MemoryStream ms = new MemoryStream())
using (TextWriter writer = new StreamWriter(ms))
{
writer.Write("HELLO");
writer.Flush();
byte[] bytes = ms.ToArray();
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
