我目前正在使用 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
}