En el post sobre el uso del patrón de software “Message Qeue” llamado “Escalando servicios con Colas + Redis” creamos una aplicación para terminal para poder testear el servicio.
Las aplicaciones para terminal, aunque poco demandado por los clientes, son súper interesantes y útiles. Además, ahora con todo el tema de Data Science, Microservicios, etc. están cobrando otra vez protagonismo.
Hoy vamos a ver algunos scripts para crear nuestras aplicaciones en línea de comandos:
Limpiar la pantalla
Naturalmente, lo primero es aprender a usar los códigos ANSI para interactuar con el terminal. Y lo mejor es empezar con el limpiado de pantalla. Con el siguiente script limpiareis la pantalla(Terminal) en Java:
System.out.print("\033[H\033[2J"); System.out.flush();
Colores de letra
También podemos cambiar los colores de letra usando los siguientes códigos(No voy a poner el System.out.println, pero se presupones…):
# Negro \u001b[30m # Rojo \u001b[31m # Verde \u001b[32m # Amarillo \u001b[33m # Azul \u001b[34m # Magenta \u001b[35m # Cyan \u001b[36m # Blanco \u001b[37m # Reseteado del color de letra \u001b[0m
Colores de fondo
# Negro \u001b[40m # Rojo \u001b[41m # Verde \u001b[42m # Amarilla \u001b[43m # Azul \u001b[44m # Magenta \u001b[45m # Cyan \u001b[46m # Blanco \u001b[47m
Decoradores
# Negrita \u001b[1m # Subrallado \u001b[4m # Reverse \u001b[7m
Moverse por la pantalla
Ademas de todo esto deberemos también dominar como movernos por la pantalla, con los siguientes códigos ANSI nos podremos desplazar con las teclas del cursos(Donde {n} indica el número de desplazamientos):
# Arriba \u001b[{n}A # Abajo \u001b[{n}B # Derecha \u001b[{n}C # Izquierda \u001b[{n}D
Leer datos desde la consola
Finalmente, también puede ser necesario leer datos desde la consola, con este simple script leeremos una línea desde la consola:
System.out.println("Password: "); Scanner scanner = new Scanner(System.in); String password = scanner.nextLine();
Con el objeto ‘Scanner’ es muy simple leer datos de la pantalla, además, dispone de métodos para leer distintos tipos de datos: números, caracteres, etc.