c# – 将巨大的xml数据写入文件的最佳方法?
我目前正在使用XmlTextWriter类将包含大量数据(100000条记录)的数据库表导出到xml文件中,并且我直接写入物理驱动器上的文件.
_XmlTextWriterObject = new XmlTextWriter(_xmlFilePath,null); 虽然我的代码运行正常但我的问题是它是最好的方法吗?我应该首先在内存流中写入整个xml,然后从内存流中将xml文档写入物理文件中吗?在这两种情况下,对内存/性能的影响是什么? 编辑 对不起,我实际上无法表达我的意思.谢谢Ash指出. 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技术进行未来验证. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |