Для "торможения" EOF нужно ловить только в том месте, где он ожидается. А именно - вокруг ```keyLength = reader.readInt();```