从文件中读取对象(反序列化),判断对象读取完毕

number1170196649 2011-11-04 11:07:35
首先将多个对象逐个序列化写入文件,然后将文件中的对象反序列化读取出来。怎么判定文件已经读取完毕?
...全文
268 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonespace 2011-11-05
  • 打赏
  • 举报
回复
你在序列化之前先把对象的总数写入文件,反系列化的时候,先读出总数,对象数目超过或者等于总数表示已经完成,

如果你不好确定对象的总数,也可以在系列化每个对象之前,把一个整数0写入文件,对象系列化完之后,再写入一个1到文件,这样反系列化每个对象之前,先读一个整数,如果是0则反系列化,如果是1表示文件已经结束,
number1170196649 2011-11-05
  • 打赏
  • 举报
回复
文件中有多个对象,多次返回正确的对象,在最后一次(也就是空的时候)出现异常。[Quote=引用 1 楼 juliohuang 的回复:]
反序函数返回即结束了。将StreamReader放到using中即可。
特别注意的是序列化输出的时候有点特殊,序列化后StreamWriter最好做一次Flush操作保证写入硬盘。
一般情况下Stream放在using中保证结束后释放文件
[/Quote]
机器人 2011-11-04
  • 打赏
  • 举报
回复
你是同步还是异步,同步的话执行完就完了,异步搞个回调或者事件通知
黄亮 2011-11-04
  • 打赏
  • 举报
回复
反序函数返回即结束了。将StreamReader放到using中即可。
特别注意的是序列化输出的时候有点特殊,序列化后StreamWriter最好做一次Flush操作保证写入硬盘。
一般情况下Stream放在using中保证结束后释放文件

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧