Esta clase posee métodos para acceder a la consola que se encuentre asociada a la JVM (Máquina Virtual de Java) actual.
Nos permite leer cadenas y contraseñas de forma fácil siempre y cuando haya una consola asociada a nuestra aplicación.
Esta clase puede ser utilizada desde Java 6.
Observa el primer ejemplo:
import java.io.Console;
public class UsoDeConsola1 {
public static void main (String args[]){
Console consola= System.console();
//si consola es null significa que no podremos utilizar esta clase
if (consola==null){
System.out.printf ("No existe una consola asociada a esta JVM");
System.exit(0); //Termina la aplicación
}
consola.printf("Ingresa al sistema\n");
String user= consola.readLine("user: ");
char password[] = consola.readPassword("pass: ");
//convierte el arreglo de caracteres en un String
String pass= new String (password);
consola.printf("\nEl usuario introducido es: " + user + ", y el password es: " + pass);
}
}
En este ejemplo, primero se verifica si existe una consola (consola==null). Luego se lee muestra el mensaje "user: " y se espera que el usuario introduzca el nombre de usuario. Luego se muestra el mensaje "pass: " y se lee la contraseña del usuario (pero sin mostrarla).
Como pudiste observar, el método readLine() se utiliza para leer cadenas, y el método readPassword() se utiliza para leer contraseñas sin mostrarlas mientras se escribe. El método readPassword() lee un arreglo de caracteres, por eso se tuvo que convertir a un String antes de imprimirlo. Ambos métodos reciben una cadena para mostrar al usuario.
Otras formas de hacer lo mismo serían:
Ejemplo2:
consola.printf("Ingresa al sistema\n");
String mensaje1="user: ", mensaje2="pass: ";
String user= consola.readLine("%s", mensaje1);
char password[] = consola.readPassword("%s",mensaje2);
En este caso se utilizó la versión de los métodos de lectura que funciona similar al método prinf().
Ejemplo3:
consola.printf("Ingresa al sistema\n");
consola.printf("user: ");
String user= consola.readLine();
consola.printf("pass: ");
char password[] = consola.readPassword();
En este último ejemplo, los mensajes se imprimieron en instrucciones separadas y no en los métodos para leer.



No hay comentarios:
Publicar un comentario