Как установить лимит времени для ввода информации на консоль?

Программа должна общаться с пользователем в консоли (Eclipse IDE), если у пользователя нет ответа на вопрос в течение некоторого времени (например, 10 секунд), который программа задает в консоли, программа должна задать следующий.

Как закрыть ввод в консоли, если пользователь ничего не ввел? Пример выполнения:

programm print: "What is your name?"
user can put: "Bond"
programm print: "How old are you?"
user can put: "25"

(в этом случае все хорошо)

Но у меня проблема с такой ситуацией:

programm print: "What is your name?"
user put anything
programm print: "How old are you?"
user can put: "25"

и после этой консоли я активен, и я могу поставить одну строку. Например, если пользователь проигнорирует вопрос "100", то консоль обеспечит установку 100 строк, как решить эту проблему?

Мой код выглядит так:

 ...
 static answer;
 ...

 // 5 questions for example
 for (int i = 0; i < 5; i++) {

     BufferedReader reader = new BufferedReader(
         new InputStreamReader(System.in));

     final Thread timeForAnswer = new Thread(() -> {
         Thread.sleep(10000);
     }).start();

     final Thread input = new Thread(() -> {
         answer = reader.readLine();
        // If user put answer before 10 sec. period - interrupt timeForAnswer and ask next question
        timeForAnswer.interrupt();
     }).start();

     timeForAnswer.join();

     input.interrupt();

     System.out.println("Answer: " + answer);

}

0 ответов

Другие вопросы по тегам