当前位置:  开发笔记 > 编程语言 > 正文

使用MemoryStream写出XML

如何解决《使用MemoryStream写出XML》经验,为你挑选了1个好方法。

我注意到有两种不同的方法可以将数据写入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方法是否会提供Atomic写入事件和/或防止写入问题?

任何人都可以解释这是否真的有必要或只是一种过度杀戮的方式来添加不必要的代码行到我的项目?



1> Marc Gravell..:

这个MemoryStream版本在这个场合很浪费.MemoryStream如果你想执行Stream类似的工作,但不想要一个实际的文件,这是很有用的.如果您正在编写文件,则只需写入该文件即可.这避免了缓冲内存中所有数据的需要.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有