Как установить лимит времени для ввода информации на консоль?
Программа должна общаться с пользователем в консоли (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);
}