現在、 XmlTextWriter クラスを使用して膨大なデータ(100000 件以上のレコード)を含むデータベース テーブルを xml ファイルにエクスポートしており、物理ドライブ上のファイルに直接書き込んでいます。
_XmlTextWriterObject = new XmlTextWriter(_xmlFilePath, null);
私のコードは正常に実行されますが、私の質問はそれが最善のアプローチですか? 代わりに、最初に xml 全体をメモリ ストリームに書き込んでから、xml ドキュメントをメモリ ストリームから物理ファイルに書き込む必要がありますか? どちらの場合も、メモリ/パフォーマンスにどのような影響がありますか?
編集
言いたいことが伝わらなくてすみません。指摘してくれたAshに感謝します。私は実際に 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
}