Почему вот такая штука один раз считывает строку, а дальше получается исключение:
public static String readString() throws IOException {
    try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in))) {
        return bufferedReader.readLine();
    }
}