В настоящее время я экспортирую таблицу базы данных с огромными данными (100000+ записей) в файл xml, используя класс XmlTextWriter , и пишу непосредственно в файл на физическом диск.
_XmlTextWriterObject = new XmlTextWriter(_xmlFilePath, null);
Хотя мой код работает нормально, мой вопрос в том, что это лучший подход? Должен ли я вместо этого записать весь XML в потоке памяти, а затем записать XML-документ в физическом файле из потока памяти? И как влияют на память / производительность в обоих случаях?
EDIT
Извините, что я не смог передать то, что хотел сказать. Спасибо Эшу за указание.
Я действительно буду использовать XmlTextWriter, но я хотел сказать, передавать ли физическую строку пути к файлу конструктору XmlTextWriter (или, как предположил Джон, методу 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
}