Vamos a ver como podemos leer caracteres por consola utilizando Groovy. Al igual que en el resto de ejemplos de Groovy nos vamos a apoyar en los closures para poder realizar la lectura por consola. Y es que en este caso vamos a aplicar un objeto closure sobre el elemento System.in, el cual representa la consola.
El método que nos permite asociar el closure al System.in es .withReader
System.in.withReader leerConsola
Ahora pasamos a definir el closure leerConsola. Como todos los closures tendremos un iterado (it) con los datos de iteración. En este caso los datos de iteración es el acceso directo al contenido insertado en la consola. Apoyándonos en el método .readLine() obtendremos el contenido del usuario.
print "Dame un dato"
def texto = it.readLine();
Ya solo nos queda volcar el contenido de lo leído por consola (si es que no queremos hacer otra cosa con ello).
print "La cadena insertada ha sido $texto"
La definición global del closure leerConsola será la siguiente:
def leerConsola = {
print "Dame un dato"
def texto = it.readLine();
print "La cadena insertada ha sido $texto"
}
Como se puede ver en el código realizar una lectura por consola en Groovy es realmente sencillo gracias a los closures.