レコードは可変長です。データを書き出す場合は、 レコード長項目は書き込むバイト数を示します。項目が char でない限り、データの最終バイトは項目の最終バイトでなければなりません。
レコード長項目の値が、項目の最終バイトを指すか char 項目内に収まるようにプログラムを変更してください。