asi como utilizas System.out.println() para visualizar caracteres en la pantalla, utiliza el metodo System.in.read(), para leer de el teclado.
Eso si, si utilizas por ejemplo " int datos=System.in.read();" y luego imprimes la variable "datos" por pantalla, cualquier caracter que haya tecleado el usuario, le aparecera en su representacion ASCII, ¿Me explico?