为了账号安全,请及时绑定邮箱和手机立即绑定

关于流的Write和Read操作

关于流的Write和Read操作

慕田峪4524236 2018-08-02 08:05:25
在学习序列化的时候出现一个问题一个button是来设置把bo1对象转换成Bytes数组,然后存在session中,后一个button用来读取这个对象,但是这样会报错的,错误信息是“End of Stream encountered before parsing was completed.”如果使用MemoryStream ms = new MemoryStream(bts)就不会报错了 我想知道直接把bts赋给MemoryStream的构造函数和用write方法写进去Memorystream有什么不一样吗?我记得前几天把一个记事本中的一串字符通过binarywrite写进一个memorystream,直接用binaryread.readchar()得到的字符串和记事本也不一样,是不是写的时候加入了额外的比如编码信息吗?
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

应该说用write和构造函数是一样的只是在ms.Write(bts,0,bts.Length);之后ms的position属性在最后,反序列化应该是从最开始读取才正确,所以需要在

var book= (BOOK)bf.Deserialize(ms);//报错之前加上ms.Position=0,试了 可以了


查看完整回答
反对 回复 2018-08-06
?
倚天杖

TA贡献1828条经验 获得超3个赞

查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 599 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信