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 creando un InputStreamReader (transforma los bytes en caracteres) y este último se usa para construir un flujo de entrada con buffer (BufferedReader).

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…).

Acerca de franciscoguemes

Ingeniero en Informática
Esta entrada fue publicada en Java. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s