В общем, вы не можете. Текстовый файл - это последовательность байтов в фиксированных местах.
Вы можете обновить только одну запись, если вы очень осторожны: сделайте запись каждого пользователя фиксированной длины. Найдите его и перезапишите только одну короткую подстроку файла. Если новая строка короче, вам придется заполнить пробелами или другими символами. Если оно длиннее, ваша исходная оценка длины недействительна, и вы должны что-то пропустить.
Приложение, которое вы описываете, предназначено для некоторого приложения базы данных, в котором файл представляет собой набор записей, адресованных косвенным образом. ,Также рассмотрите возможность использования структуры JSON.
Для замены строки такой же длины используйте методы tell и seek .
Используйте tell
, чтобы вспомнить положение интересующей вас строки. Измените значение, вернитесь в его положение с помощью seek
, а затем write
новой строки поверх оригинала.
Я все еще рекомендую перейти к представлению базы данных;перезапись строк - хрупкий способ сохранить хранилище данных.