Хотя можно изменить строку в файле - , вы можете сделать это безопасно только в том случае, если замещающий текст будет точно такой же длины . Так как это редко бывает, ваш Лучше всего заменить все содержимое файла новыми результатами.
Строковые текстовые файлы не являются отличным форматом для хранения информации, которая может измениться именно по этой причине.
Теперь, предполагая, что файл не слишком большой, вы можете полностью загрузить его в массив строк, заменить текст определенной строки и записать файл обратно:
using System.IO;
var linesOfText File.ReadLines( "/myfile.txt", Text.Encoding.UTF8 ).ToArray();
linesOfText[123] = "456, sally smith, USA";
File.WriteAllLines( "/myfile.txt", linesOfText );
РЕДАКТИРОВАТЬ: В целях краткости я привел приведенный выше пример, который использует индексированную позицию для обновления конкретной строки. При любом реальном использовании вы должны анализировать строки и искать ту, которую хотите обновить / заменить, а не полагаться на смещение.
Я бы не использовал приведенный выше код, если файл слишком большой, ~ 5000 строк по 50 символов относительно мал (<1Mb), так что я бы не волновался. Но если вы собираетесь выполнять этот тип операции снова и снова, вы можете переосмыслить способ хранения этих данных. </p>