0

在这段 C# 代码中,我遇到了 OutOfMemoryException 的问题。

private void SaveZip(IDataReader reader, string header, string fileName, Ionic.Zip.ZipFile zip)
    {
        using (var stream = new MemoryStream())
        {
            using (var writer = new StreamWriter(stream, Encoding.ASCII))
            {
                writer.WriteLine(header);
                while (reader.Read())
                {
                    writer.WriteLine(reader.GetString(0)); //exception occurs here
                }

                writer.Close();
            }

            zip.AddEntry(fileName, stream.ToArray());
        }
    }

该代码尝试将 DataReader 对象写入一个文件,该文件在过程结束时被压缩。问题是 Reader 包含大量数据,大约 150MB,当我尝试将流写入内存时,它引发了异常。我该如何解决这个问题?

感谢帮助!

4

1 回答 1

0

如果您没有足够的内存来将数据处理到内存缓冲区,那么您将不得不将其存储在内存之外,例如磁盘。例如替换MemoryStreamFileStream

于 2013-02-12T18:09:53.023 回答