Этот формат файла уже исправлен? Если это не так, то это действительно хорошая идея, чтобы изменить формат строки с префиксом длины. Затем вы можете прочитать только правильное количество и преобразовать его в строку.
В противном случае вам нужно будет прочитать куски из файла, выполнить поиск новой строки и декодировать нужный объем данных или (если вы не нашли новую строку) либо буферизовать его где-нибудь еще (например, MemoryStream) или просто запомните начальную точку и перемотайте поток соответствующим образом. Это будет ужасно, но это только из-за недостатка формата файла.
Я бы посоветовал вам не"пере-декодировать" (т.е. декодировать произвольные двоичные данные после строки) - хотя это вполне может не причинить вреда, в некоторых кодировках вы могли бы читать невозможная последовательность двоичных данных, которая затем начинает попадать в области DecoderFallbacks и т. п.