gpt4 book ai didi

c# - 使用 MemoryStream 写出到 XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:01 24 4
gpt4 key购买 nike

我注意到将数据写入 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 方法是否会提供原子写入事件和/或防止写入问题?

任何人都可以解释这是否真的有必要,或者只是向我的项目添加不必要的代码行的一种矫枉过正的方法?

最佳答案

MemoryStream 版本在这种情况下很浪费。 MemoryStream 如果您想执行类似于 Stream 的工作,但不想要实际文件,则很有用。如果您正在写一个文件,那么只需写入该文件即可。这避免了在内存中缓冲所有数据的需要。

关于c# - 使用 MemoryStream 写出到 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/486843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com