Apuntes de Java: Entrada de datos

Algo básico e importante de toda aplicación indiferentemente del lenguaje de programación, es sin duda alguna el nivel de interacción que se tiene con los usuarios, ya saben, toda la teoría que hay detrás del software a medida y las necesidades y requerimientos y todo eso que nos dicen; pero este post es para aquellos que no tienen idea de cómo comenzar con eso en sus aplicaciones por consola que, si han seguido los apuntes y sólo los apuntes de java de este blog, sólo saben imprimir textos en consola.

Pues bien, en este post voy a usar un poco lo básico de ingresar datos por consola y tomarlos como referencia para creación de variables, es algo fácil, no se preocupen.

Técnicamente Java usa los Streams y el apoyo en las clases System o en específico, System.in; para esto, en la clase en la cual queramos ingresar datos debemos manejar un Buffer, y en conjunción con los Stream, lo que hacemos es decirle a la máquina en su lenguaje, que vamos a ingresar texto y que lo guarde bla bla…

La línea para definir un buffer, es la siguiente:

BufferedReader br = new BufferedReader(new InputstreamReader(System.in));

Luego una vez ingresada esa línea podremos hacer que las variables (o los objetos, cosas que veremos luego) puedan almacenar información ingresada desde nuestro propio teclado con líneas de lecturas en base a ese buffer, pero, hay que tener un poco de cuidado con los tipos de variables.

Si fuese el caso de ingresar sólo texto y no hacer alguna operación con ello será conveniente definir las variables como String’s, y entonces la lectura sería algo así:

String TextoIngresado = "";
TextoIngresado = br.readLine();
System.out.println(TextoIngresado); //esto tiene que mostrar en consola lo que escribimos. 

Si fuese el caso de ingresar dígitos la lectura es algo así:

Double NumeroIngresado = 0;
NumeroIngresado = Double.parseDouble(br.readLine()); 

Esto hace que lo que ingresemos por teclado se castee en un Double
(puede ser un int, un float o un long, igual es válido), y obviamente si ingresamos texto en este caso, el programa lanzará una excepción, por lo que necesariamente luego de la declaración del método main debemos colocar algo así:

public static void main(String[]args) throws IOException{ // (...) 

Una vez tengamos la posibilidad de ingresar datos por teclado, podremos extendernos un poco más y hacer programas que simulen calculadoras, operaciones complejas, algoritmos, fórmulas, etc. Tan sencillo es castear un double y operarlo con otro como en este ejemplo:

public static void main(String[]args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    double n1, n2, n3;

   System.out.println("Ingrese un numero:");
   n1 = Double.parseDouble(br.readLine());

   System.out.println("Ingrese otro numero:");
   n2 = Double.parseDouble(br.readLine());

   n3 = n1 + n2; //aqui puedes poner algoritmos complejos si lo deseas

   System.out.println("Al sumarlos, el resultado sera : " +n3);

 } 

Y antes que me olvide, antes de toda la clase, osea, por encima de todo el código deben colocar la siguiente línea:

import java.io.*; //esto hace que se importen las clases necesarias para entrada/salida de datos 

Bueno, espero les haya servido, sobre todo a quienes se inician en la programación con Java, si tienen dudas, observaciones, apuntes o demás no duden en comentarlo…

Nos vemos en el próximo post.

Saludos!