我注意到有两种不同的方法将数据写入 XML 文件(为简洁起见,省略了错误处理)。
第一种方法是构建 XML 文档,然后将 XML 保存到文件中:
using (XmlWriter writer = XmlWriter.Create(fileName))
{
writer.WriteStartDocument(true);
writer.WriteStartElement("parentelement");
writer.WriteEndElement();
writer.WriteEndDocument();
}
第二种方法是创建一个 MemoryStream,然后将 MemoryStream 保存到文件中:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
MemoryStream ms = new MemoryStream();
using (XmlWriter writer = XmlWriter.Create(ms, settings))
{
writer.WriteStartDocument(true);
writer.WriteStartElement("parentelement");
writer.WriteEndElement();
writer.WriteEndDocument();
}
using (FileStream fs = File.Open(fileName, FileMode.Create, FileAccess.Write))
{
ms.WriteTo(fs);
ms.Dispose();
}
我猜测使用 MemoryStream 的逻辑是确保在尝试保存文件之前可以构建 XML 文件。当您将条目添加到 XML 文件时,MemoryStream 方法是否会提供原子写入事件和/或防止出现写入问题?
任何人都可以解释这是否确实有必要,或者只是一种向我的项目添加不必要的代码行的过度方式?
The MemoryStream
版本在这种情况下是浪费的。MemoryStream
如果你想执行的话很有用Stream
-类似工作,但不需要实际文件。如果你are写一个文件,然后写入该文件。这避免了需要在内存中缓冲所有数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)