Leer desde el teclado

guichogr
12 de Febrero del 2002
Hola soy Luis:

Quisiera saber como puedo leer desde el teclado y guardar el valor en una variable para procesarla en mi programa.

De antemano, gracias.

[email protected]
12 de Febrero del 2002
Ante todo, espero que esta explicación te sea de utilidad, a ver si lo conseguimos....
Empezamos
Para que el usuario pueda introducir datos a través del teclado debemos crear un búfer de entrada de datos:

//Debes incorporar las librerías de Entrada/Salida
import java.io.*;

/*Creamos el objeto isr de la clase InputStreamReader() para pasarselo como parámetro al búfer de entrada*/
InputStreamReader isr = new InputStreamReader(System.in);
//Búfer de entrada
BufferedReader br = new BufferedReader(isr);
/*Con 'BufferedReader' hemos creado un objeto br con el cual podremos utlizar los metodos de la clase BufferedReader*/
¡¡¡Ya podemos utilizar el bufer de entrada!!!
p.e
Para Strings:
String nombre;
System.out.print("Introduzca su nombre: );
nombre = br.readLine();
/*El metodo 'readLine()' lee la linea de caracteres introducida y se la asigna a la variable 'nombre'*/
Para enteros:
int numero;
System.out.print("Introduzca n£mero: ");
numero = Integer.parseInt(br.readLine());
/*Para leer números enteros utilizamos el método parseInt de la clase Integer que transforma la cadena leida desde 'readLine()' en un número entero. Ejemplo de Integer.parseInt():
Imaginemos que tenemos una cadena de caracteres "abcdefg" que son letras, igualmente la cadena "1234535" son también caracteres como las letras (no son números para el compilador).Hay que distinguir entre:
int numero = 123;
y
String numero = "123";
Una vez aclarado esto. Si utilizamos el método parseInt() de la clase Integer() podremos transformar la cadena en entero:
numero = Integer.parseInt("1234535");
lo convertiría en el entero numero = 1234535;

Para leer un entero, utlizamos el método readLine() (que lee la cadena de caracteres) combinándolo con el metodo parseInt()(que transforma los caracteres a enteros).;
se Introduce por teclado la cadena "123"
numero = Integer.parseInt(br.readLine());
readLine() lo lee y parseInt() lo transforma a entero.*/

Por último debes tener en cuenta que abrir el bufer de entrada genera una excepcion que debes tener en cuenta si no quieres que el programa falle. Para ello, escribes todo lo que vaya tras el búfer dentro de un bucle try{}catch(Exception e){}. Ahoro lo verás claro en este ejmplito que te envío.
//Copiar código desde aquí
import java.io.*;
public void nombre_aplicacion{

public static void main(String args[]){
String nombre,numeroCadena;
int numeroEntero1,numeroEntero2;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try{
System.out.print("Introduzca su nombre: ");
nombre = br.readLine();
System.out.print("Introduzca un numero: ");
//lectura del numero como cadena;
numeroCadena = br.readLine();
/*transformemos la cadena numeroCadena en entero*/
numeroEntero1 = Integer.parseInt(numeroCadena);
//Hagamos el proceso anterior en un solo paso
System.out.print("Introduzca segundo numero: ");
numeroEntero2 = Integer.parseInt(br.readLine());

System.out.println("Bueno "+nombre+" espero que este emilio te haya servido de algo.");
System.out.println("Ya sabes como introducir tus numeros "+numeroEntero1+", "+numeroEntero2);
System.out.println(" y tus Strings "+nombre+" y "+numeroCadena+" Saludos. JavaManux");
}catch(Exception e){
System.out.println("Se ha producido un error de E/S");}
}
}

guichogr
12 de Febrero del 2002
Te agradezco mucho que te hayas tomado la molestia de contestarme y aún más de la gran explicación y tan de tallada que me diste.

Atte. Luis García.

mape
12 de Febrero del 2002
Para recoger por el teclado, también lo puedes hacer con:System.in.read();Pero si por ejemplo quieres recoger un dato de tipo char tendrás que hacer un casting.Lo que te queda es lo siguiente:
char letra=(char)System.in.read();