将400.000条记录写入文件时出现"System.OutOfMemoryException"

Jan*_*nis 0 c#

我真的希望有人可以帮助我.

我必须将近400,000条记录从数据库传递到文本文件由于这个数量,文本文件的扩展名只是我编写的内容...(.you_name_it)我在+/-将数据写入文件时出错9000条记录.错误=抛出类型'System.OutOfMemoryException'的异常并且我不知道解决方案:(

这是我用于将记录写入文件的代码的和平.

        this.path_to_file =
        ConfigurationManager.AppSettings["ExportDir"] +
DateTime.Now.ToString(ConfigurationManager.AppSettings
["Export_FileName"]) + ConfigurationManager.AppSettings
["Export_Extension"];


        FileStream fm = new FileStream
           (this.path_to_file, FileMode.Create, FileAccess.ReadWrite,
FileShare.ReadWrite);

        StreamWriter sw = new StreamWriter(fm, Encoding.Default);

        List<Export> exportRecords = null;

        exportRecords = ExportList();
        try
        {
            int i = 0;
           foreach (Export ex in exportRecords)
           {
               sw.Write(ex.ExportLine());
              sw.Write(sw.NewLine);
              sw.Flush();
              exportlines += ex.ExportLine() + "\n";
               i++;
           }
        }
        catch (Exception exc)
        {
           Log.Write(exc.Message);
        }
Run Code Online (Sandbox Code Playgroud)

typ*_*ven 6

为什么代码中有这一行?

      exportlines += ex.ExportLine() + "\n"
Run Code Online (Sandbox Code Playgroud)

假设它是一个字符串变量,它会增长,增长和增长......并消耗内存.

  • 如果它不用于OP中未显示的任何其他内容,则隐含的解决方案是将其取出. (2认同)