Todo lo necesario para sobrevivir en la carrera de Ing. en Informática, Vespertino

9 may 2007

Ingreso por teclado

A veces, para resolver el problema, simplemente hay que dejar de mirarlo

Introducción a la entrada por teclado

En java para poder escribir se emplea el objeto System.out, pero para leer del teclado es necesario emplear System.in. Este objeto pertenece a la clase InputStream, esto significa que para leer tenemos que emplear sus métodos, el más básico es read, que permite leer un carácter:

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

Pero como podemos comprobar es muy incómodo leer de letra en letra, por ello para poder leer una línea completa emplearemos el siguiente código:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String línea = br.readLine();

En el cuál creamos un InputStreamReader a partir de System.in y pasamos dicho InputStreamReader al constructor de BufferedReader, el resultado es que las lecturas que hagamos sobre br son en realidad realizadas sobre System.in, pero con la ventaja de que se permite leer una línea completa.

Es necesario realizar un import de java.io para poder emplear esta lectura de líneas.

Además la línea del readLine puede lanzar Excepciones, es por ello que hay que meterla entre instrucciones try/catch para poder gestionar el posible error:



String línea;

try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
línea = br.readLine();
} catch(Exception e){
e.printStackTrace();
}
System.out.println(línea);



Algunos ejemplos



Recuperar 1 caracter


import java.io.*;

class pregunta
{


public static void main(String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Ingrese s/n: ");
char ans = (char) System.in.read();
if (ans=='s')
System.out.println ("escribio s")
else
System.out.println ("escribio otra cosa");

} // cierra main
} // Cierra class



Revisar http://www.mailxmail.com/curso/informatica/java/capitulo50.htm

No hay comentarios: