Я мог бы переписать ваш бит кода следующим образом:
var fileContents = System.IO.File.ReadAllText(@"C:\File.html");
fileContents = fileContents.Replace("<body>", "<body onload='jsFx();' />");
fileContents = fileContents.Replace("</body>","blah blah blah </body>");
System.IO.File.WriteAllText(@"C:\File.html", fileContents);
Я должен отметить, что это решение подходит для файлов разумного размера.В зависимости от оборудования любая вещь под несколько десятков МБ.Он загружает все содержимое в память.Если у вас действительно большой файл, вам может потребоваться его потоковая передача по нескольким сотням килобайт за раз, чтобы исключить исключение OutOfMemoryException.Это немного усложняет задачу, поскольку вам также необходимо проверить разрыв между каждым фрагментом, чтобы увидеть, разделяет ли строка поиска.