Считыватель концептуально является однонаправленной вещью, от начала (или, точнее, текущей позиции в потоке) до конца.
Каждый раз, когда вы читаете строку, он просто буферизует данные до тех пор, поканаходит новую строку;на самом деле он не имеет понятия текущей строки (или перемещения между строками).
Пока файл не массивный, вы должны нормально читать весь файл, работая над строкой (илистроковый массив), после чего сохраняется весь файл;вставка / удаление текстового содержимого в противном случае является нетривиальным (особенно если учесть тайны кодировок).
File.ReadAllLines и File.WriteAllLines могут быть проще в вашем сценарии.