C#序列化 追加文件不成功,是不是不能这样追加记录的?
BinaryFormatterformatter=newBinaryFormatter();Streamfs=newFileStream(savePath+"\\"+ch...
BinaryFormatter formatter = new BinaryFormatter();
Stream fs = new FileStream(savePath + "\\" + chatname + ".dat", FileMode.Append,FileAccess.Write);
formatter.Serialize(fs, cllist);
fs.Close(); 展开
Stream fs = new FileStream(savePath + "\\" + chatname + ".dat", FileMode.Append,FileAccess.Write);
formatter.Serialize(fs, cllist);
fs.Close(); 展开
1个回答
展开全部
你的失败原因是什么答枯前,看起来应该没有问题的。刚刚网上搜索了一下(用关键词“BinaryFormatter Serialize FileMode.Append”清清),有人这么做败族的。
追问
没有提示错误,使用下面方法也不行:
Stream stream = new FileStream(file, FileMode.Append, FileAccess.Write);
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, list);
ms.Seek(0, SeekOrigin.Begin);
stream.Write(ms.ToArray(), 0, ms.Length);
stream.Close();
只有先把原来的反序列化,添加List,再重新序列化
追答
你这样用MemoryStream的话,应该在保存前应该先刷新一下再保存的吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询