Lectura desde teclado

Para leer desde teclado se puede utilizar el método System.in.read() de la clase InputStream. Este método lee un carácter por cada llamada. Su valor de retorno es un int. Si se espera cualquier otro tipo hay que hacer una conversión explícita mediante un cast.

char c;
c=(char)System.in.read();

Este método puede lanzar la excepción java.io.IOException y siempre habrá que ocuparse de ella, por ejemplo en la forma:

try { c=(char)System.in.read();
}
catch(java.io.IOException ioex) {
// qué hacer cuando ocurra la excepción
}

Para leer datos más largos que un simple carácter es necesario emplear un bucle while o for y unir los caracteres. Por ejemplo, para leer una línea completa se podría utilizar un bucle while guardando los caracteres leídos en un String o en un StringBuffer (más rápido que String):

char c;
String frase = new String(«»); // StringBuffer frase=new StringBuffer(«»);
try {
while((c=System.in.read()) != ‘\n’)
frase = frase + c; // frase.append(c);
}
catch(java.io.IOException ioex) {}

Una vez que se lee una línea, ésta puede contener números de coma flotante, etc. Sin embargo, hay una manera más fácil de conseguir lo mismo: utilizar adecuadamente la librería java.io.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra