• Java: время на обдумывание

    Brodyaga
    @Brodyaga Автор вопроса
    В общем пока решил следующим образом:
    public static Integer readWithTimeout(int secs) {
    		Integer answer_given = null;
    		Scanner in = new Scanner(System.in);
    		if (secs != 0) {
    			secs *= 1000;
    			BufferedReader inReader = new BufferedReader(new InputStreamReader(
    					System.in));
    			long time = System.currentTimeMillis();
    			try {
    				while (System.currentTimeMillis() - time < secs) {
    					if (inReader.ready()) {
    						answer_given = in.nextInt();
    						break;
    					}
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		} else {
    			answer_given = in.nextInt();
    		}
    		return answer_given;
    	}
    

    Другое дело что если во время одного вопроса написать число, но не добавить перенос строки, и во время одного из последующих вопросов нажать Enter, старый текст будет записан как ответ на текущий вопрос. Как очищать буфер от залежавшихся там символов?
    Ответ написан
    Комментировать