Я к сожалению не знаю как изменить прошлый вопрос поэтому создаю новый что я подправил из прошлого При чтении файла пропускаются пробелы, а значит итоговый idString может быть 3 цифры не пиши так много комментариев. если у тебя имена переменных и методов выбраны правильно, то итак будет всё понятно. для таких вещей есть substring() это зачем? тебе в любом случае файл перезаписывать если заданный id найден boolean control = false; а если он не найден я просто не помню если мы обьявили булеан то вроде он фалш по умолчанию но я для достоверности тыкнул ему в нос что он отрицателныцй ты вначале проверь, а надо ли тебе перезаписывать файл. а потом только открывай поток. иначе при открытии потока у тебя файл перетрется. даже если тебе писать туда не надо.