Вопрос по c# – Как я могу читать, заменять и записывать очень большие файлы? [Дубликат]

5

Possible Duplicate:
How to read a large (1 GB) txt file in .NET?

Каков оптимальный путь в C # для чтения файла, замены некоторых строк и записи в другой новый файл? Мне нужно сделать это с очень большими файлами, такими как 8 ГБ или 25 ГБ.

обычный текст, резервное копирование базы данных для очистки. iLevi
Что за файл? Omar

Ваш Ответ

3   ответа
1

которые не слишком велики? Если это так, вы можете читать в файле построчно, выполнять замену в этой строке, а затем записывать эту строку в новый файл. Так как он потоковый, требуется очень мало памяти.

2

используйте StreamReader и StreamWriter.

StreamReader

StreamWriter

7

что вы можете оптимизировать относительно ввода / вывода, большая часть оптимизации должна быть при сравнении строк, чтобы определить, должна ли строка быть заменена или нет, в основном вы должны сделать это

protected void ReplaceFile(string FilePath, string NewFilePath)
{
   using (StreamReader vReader = new StreamReader(FilePath))
   {
      using (StreamWriter vWriter = new StreamWriter(NewFilePath))
      {
         int vLineNumber = 0;
         while (!vReader.EndOfStream)
         {
            string vLine = vReader.ReadLine();
            vWriter.WriteLine(ReplaceLine(vLine, vLineNumber++));
         }
      }
   }
}
protected string ReplaceLine(string Line, int LineNumber )
{
   //Do your string replacement and 
   //return either the original string or the modified one
   return Line;
}

Каковы ваши критерии, чтобы найти и заменить строку?

Если вам не нужен номер строки, вы должны удалить его из объявления ReplaceLine () и вызова этой функции.
Отличный ответ. Не должно вызывать исключение из слишком большого чтения в память на строку.
Просто и замечательно!

Похожие вопросы