我注意到写入数据到 XML 文件有两种不同的方法(为了简洁起见,省略了错误处理)。
第一种方法是先构建 XML 文档,然后直接将 XML 保存到文件中:
第二种方法是创建一个MemoryStream,然后将其保存到文件中:
第一种方法是先构建 XML 文档,然后直接将 XML 保存到文件中:
using (XmlWriter writer = XmlWriter.Create(fileName))
{
writer.WriteStartDocument(true);
writer.WriteStartElement("parentelement");
writer.WriteEndElement();
writer.WriteEndDocument();
}
第二种方法是创建一个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文件。使用MemoryStream方法是否会提供原子写入事件和/或在添加条目到XML文件时保护免受写入问题?
有人能解释一下这是否真的必要,还是只是在我的项目中添加不必要的代码行?