Можно ли использовать File.AppendAllText с очень большими файлами без проблем с памятью? - PullRequest
3 голосов
/ 31 марта 2012

Мне нужно записать в очень большой текстовый файл, добавив в него содержимое, поскольку я перебираю очень большой набор записей в c # 3.5. Этот файл может иметь размер несколько ГБ. Я думал, что я буду использовать File.AppendAllText для записи в файл после обработки каждой записи. Таким образом, я не храню файл в памяти. Однако будет ли AppendAllText считывать все содержимое файла в память при вызове или просто добавит новое содержимое в его конец?

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Добавление не означает, что оно загружает существующий контент, так что да, вы можете использовать AppendAllText для этого. Однако обратите внимание, что StreamWriter также можно использовать, возможно, более аккуратно, для постепенной записи в файл (плюс без необходимости открывать / закрывать файл.

0 голосов
/ 31 марта 2012

Из документации для 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...