c# – 将巨大的xml数据写入文件的最佳方法?

c# – 将巨大的xml数据写入文件的最佳方法?,第1张

概述我目前正在使用XmlTextWriter类将包含大量数据(100000条记录)的数据库表导出到xml文件中,并且我直接写入物理驱动器上的文件. _XmlTextWriterObject = new XmlTextWriter(_xmlFilePath, null); 虽然我的代码运行正常但我的问题是它是最好的方法吗?我应该首先在内存流中写入整个xml,然后从内存流中将xml文档写入物理文件中吗?在 我目前正在使用XmlTextWriter类将包含大量数据(100000条记录)的数据库表导出到xml文件中,并且我直接写入物理驱动器上的文件.

_XmlTextWriterObject = new XmlTextWriter(_xmlfilePath,null);

虽然我的代码运行正常但我的问题是它是最好的方法吗?我应该首先在内存流中写入整个xml,然后从内存流中将xml文档写入物理文件中吗?在这两种情况下,对内存/性能的影响是什么?

编辑

对不起,我实际上无法表达我的意思.谢谢Ash指出.
我确实会使用XmlTextWriter,但我想说是否将物理文件路径字符串传递给XmlTextWriter构造函数(或者,如John建议的那样,传递给XmlTextWriter.Create()方法)或使用基于流的API.我当前的代码如下所示:

XmlWriter objXmlWriter = XmlTextWriter.Create(new BufferedStream(new fileStream(@"C:\test.xml",fileMode.Create,System.Security.AccessControl.fileSystemRights.Write,fileShare.None,1024,fileOptions.SequentialScan)),new XmlWriterSettings { EnCoding = EnCoding.Unicode,Indent = true,CloSEOutput = true });using (objXmlWriter){   //writing xml contents here}
解决方法 虽然我的代码运行正常但我的问题是它是最好的方法吗?

如上所述和您的更新,XmlWriter.Create很好.

或者我应该首先在内存流中写入整个xml,然后从内存流中将xml文档写入物理文件中?

你有内存将整个文件写入内存吗?如果您这样做,那么该方法将更快,否则使用fileStream流式传输它将为您处理它.

在这两种情况下,对内存/性能的影响是什么?

读取整个XML文件将使用更多内存,并启动处理器.流式传输到磁盘将使用更多的处理器.但是,即使是桌面硬件,你也需要使用一个巨大的文件.如果您担心未来的尺寸会增加更多,请坚持使用fileStream技术进行未来验证.

总结

以上是内存溢出为你收集整理的c# – 将巨大的xml数据写入文件的最佳方法?全部内容,希望文章能够帮你解决c# – 将巨大的xml数据写入文件的最佳方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存