文件存在时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
。
上述就是C#学习教程:文件存在时FileMode.Open和FileMode.OpenOrCreate的区别? c#bug?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962032.html