Jak odczytać pojedynczy znak z konsoli w Javie (jak wpisuje go użytkownik)?

Czy jest łatwy sposób na odczytanie jednego znaku z konsoli, ponieważ użytkownik wpisuje go w Javie? Czy to możliwe? Wypróbowałem te metody, ale wszyscy czekają na naciśnięcie przez użytkownikawchodzić klawisz:

char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read();           // Java 6

Zaczynam myśleć, że System.in nie jest świadomy danych wprowadzanych przez użytkownika, dopókiwchodzić jest wciśnięty.

questionAnswers(5)

yourAnswerToTheQuestion