Поскольку файл настолько велик, вы можете взглянуть на поддержку .NET 4.0 для отображенных в память файлов .По сути, вам нужно переместить указатель файла / потока в место в файле, перезаписать это место и затем сбросить файл на диск.Вам не нужно загружать весь файл в память.
Например, без использования файлов с отображенной памятью следующее перезапишет часть файла ascii.Аргументы - это входной файл, начальный индекс с нуля и новый текст.
static void Main(string[] args)
{
string inputFilename = args[0];
int startIndex = int.Parse(args[1]);
string newText = args[2];
using (FileStream fs = new FileStream(inputFilename, FileMode.Open, FileAccess.Write))
{
fs.Position = startIndex;
byte[] newTextBytes = Encoding.ASCII.GetBytes(newText);
fs.Write(newTextBytes, 0, newTextBytes.Length);
}
}