首页 新闻 会员 周边 捐助

.net 数据序列化

0
悬赏园豆:30 [已关闭问题] 关闭于 2010-11-02 17:39

数据序列化后保存成文件File.BIN,如果数据更新后,如何把数据进行序列化后,追加在原有序列化文件中,并且能读出数据。

问题补充: 序列化函数 /// <summary> /// 数据追加序列化 /// </summary> /// <typeparam name="T">追加的数据源</typeparam> /// <param name="physicPath">原有序列化的文件File.Bin</param> /// <param name="source"></param> public static void SeekSerializable<T>(string physicPath, T source) where T : class, new() { IFormatter format = new BinaryFormatter(); Stream stream = new FileStream(physicPath, FileMode.Append, FileAccess.Write, FileShare.None); stream.Seek(0, SeekOrigin.End); format.Serialize(stream, source); stream.Close(); } 序列化函数 /// <summary> /// 对象反序列化,必须是可序列化对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <param name="physicPath"></param> public static T Deserialize<T>(string physicPath) { IFormatter format = new BinaryFormatter(); Stream stream = new FileStream(physicPath, FileMode.Open, FileAccess.Read, FileShare.Read); T entity = (T)format.Deserialize(stream); stream.Close(); return entity; }
love_99的主页 love_99 | 菜鸟二级 | 园豆:325
提问于:2010-10-22 12:29
< >
分享
所有回答(2)
0

你把更新后的数据再序列化一次不就可以了吗?如果序列成功,肯定可以用反序列化来读出数据的!如果是追加的话,你可以把原来的file.BIN文件序列化为原始数据,再与更新的数据进行一个合并,最后再序列化!不知道是不是你想样的?

Repository | 园豆:610 (小虾三级) | 2010-10-22 12:32
我就是不想把原有的数据在系列化一次,数据量大,影响性能,这样我也用不着在次追加数据了,直接查询数据在系列化进去多好啊!现在数据追加进去,不能识别成同一个集合,取出来的是初始数据。
支持(0) 反对(0) love_99 | 园豆:325 (菜鸟二级) | 2010-10-22 12:58
@love_99:以追加的方式我没试过,这是做程序,你可以大胆尝试一下,没什么大不了的,期待你的结果!
支持(0) 反对(0) Repository | 园豆:610 (小虾三级) | 2010-10-22 13:31
0

记事本打开,看里面是什么内容。

Astar | 园豆:40805 (高人七级) | 2010-10-22 13:37
序列化后,是二进制文件。
支持(0) 反对(0) love_99 | 园豆:325 (菜鸟二级) | 2010-10-22 13:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册