文件存在时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