文件存在时FileMode.Open和FileMode.OpenOrCreate的区别? c#bug?
我写了那段代码:
public void Save() { using (FileStream fs = new FileStream(Properties.Settings.Default.settings_file_path, FileMode.Open)) { XmlSerializer ser = new XmlSerializer(typeof(MySettings)); ser.Serialize(fs, this); } }
当我使用FileMode.Open
一切都很好,输出是这样的:
12 A0 MEASUREMENT 5000 C0 MEASUREMENT
但当我将其更改为FileMode.OpenOrCreate
输出将更改为:
12 A0 MEASUREMENT 5000 C0 MEASUREMENT >
是什么让整个xml文件因为最后添加>
符号而损坏。
这是可解释的还是它的c#bug?
我刚刚复制了这个问题。 正如我在评论中写的那样。
FileMode.Open
删除文件的内容,而FileMode.OpenOrCreate
则不会。
看起来该文件的新内容比之前更短的一个char,这就是为什么你最后看到“>”。
如果您正在编写文件,请使用应该为您执行的FileMode.Create
。