sábado, 9 de octubre de 2010

Leer de la línea de comandos

Leer una entrada del usuario de la línea de comandos en Java a priori no es tan intuitivo como puede ser en C o C++.En Java existen 2 opciones para llevar esto a cabo.

Usando streams
Es la forma mas extendida, se usa el flujo de entrada por defecto (System.in),el cuál se recubre creado un InputStreamReader (transforma los bytes en caracteres) y este último se usa para construir un flujo de entrada con buffer.


BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
String line = in.readLine();
} catch (IOException e) {
//Hacer lo que sea si falla...
e.printStackTrace();
}


Usando la clase Console
Esta opción no es tan extendida. Se usa la clase Console, la cuál por debajo hace uso de streams. Esta forma es muy similar a como se haría en C#.

java.io.Console c = System.console();
String name = c.readLine();


El método console de la clase System puede retornar null si el sistema operativo no tiene una consola asociada o porque no permite este tipo de operaciones (esto se suele dar en hardware básico, teléfonos móviles, router, etc ...), o bien porque se está lanzando la aplicación desde un entorno no interactivo como puede ser un IDE (Eclipse,NetBeas, etc...).

No hay comentarios:

Publicar un comentario