Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net File.AppendAllText是否可以用于非常大的文件而不会导致内存问题?_.net_File Io - Fatal编程技术网

.net File.AppendAllText是否可以用于非常大的文件而不会导致内存问题?

.net File.AppendAllText是否可以用于非常大的文件而不会导致内存问题?,.net,file-io,.net,File Io,在c#3.5中,我需要通过在一组非常大的记录上交互来向一个非常大的文本文件添加内容,从而写入一个非常大的文本文件。此文件的大小可能为几GB。我想在处理每条记录后,我会使用File.AppendAllText写入文件。这样我就不会把文件保存在内存中。但是,AppendAllText在调用时会将文件的全部内容读入内存,还是只将新内容添加到文件的末尾?来自文件的文档。AppendAllText看起来不会将文件读入内存 打开一个文件,将指定的字符串附加到该文件,然后关闭该文件。如果文件不存在,此方法将创

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

来自文件的文档。AppendAllText看起来不会将文件读入内存

打开一个文件,将指定的字符串附加到该文件,然后关闭该文件。如果文件不存在,此方法将创建一个文件,将指定的字符串写入该文件,然后关闭该文件。


From

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

每当我有这样的问题时,我都会拉出ilSpy并检查基类库,通常是mscorlib.dll,看看它对我试图调用的方法(如file.appendalltext)的实际作用。上面Tim提供的stackoverflow链接是针对.NET 4.0的。不幸的是,我使用的是.NET 3.5。感谢您为将来的项目提供链接。将文本追加到文本文件中不是问题,只是插入很困难。我读过这篇文章,但它似乎太模糊,无法解释它是否被读入内存。要想知道它是否会变慢,或者占用内存,最好的方法是尝试一下!