jueves, 29 de mayo de 2014

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 retomo 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 wltile o for y unir los caracteres. Por ejemplo, para leer una línea completa se podría utilizar un bucle wltile 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.

No hay comentarios:

Publicar un comentario