File.AppendAllText可以与非常大的文件一起使用而不会导致内存问题吗?

时间:2012-03-31 15:33:34

标签: .net file-io

我需要通过添加内容来写一个非常大的文本文件,因为我在c#3.5中对一组非常大的记录进行了交互。此文件的大小可能是几GB。我以为我会在处理完每条记录后使用File.AppendAllText写入文件。这样我就不会将文件保存在内存中。但是,AppendAllText会在调用时将文件的全部内容读入内存,还是只将新内容添加到内存中?

2 个答案:

答案 0 :(得分:1)

Apppending并不意味着它会加载现有内容,所以是的,您可以使用AppendAllText。但是请注意,也可以使用StreamWriter(可能更干净)逐渐写入文件(另外不必保持打开/关闭文件。

答案 1 :(得分:0)

从File.AppendAllText的文档看起来它不会将文件读入内存。

Opens a file, appends the specified string to the file, and then closes the file. If the file does not exist, this method creates a file, writes the specified string to the file, then closes the file.

来自http://msdn.microsoft.com/en-us/library/ms143356.aspx