Я думаю, что было бы лучше читать исходный файл построчно и изменять строку по мере продвижения.
Вы можете создать свой новый файл в StringBuilder
или, если он большой, написатьэто новый файл, используемый для замены источника в конце.
Примерно так:
using System.IO;
string tempFileName = Path.GetTempFileName();
using (StreamWriter target = File.CreateText(tempFileName))
{
using(StreamReader source = file.OpenText("YourSourceFile.???"))
{
while (source.Peek() >= 0)
{
target.WriteLine(source.ReadLine().Insert(22, ";"));
}
}
}
File.Delete("YourSourceFile.???");
File.Move(tempFileName, "YourSourceFile.???");
Этот подход особенно подходит для больших файлов, поскольку он позволяет избежать загрузки всех данных.сразу в память, но производительность будет хорошей для всех файлов, кроме очень больших, или, я думаю, если строки были очень (очень) длинными.