Cuando nos estamos iniciando en el mundo de la programación Java es muy común construir aplicaciones Java de consola (programas que corren en una ventana terminal o en un prompt de MS-DOS) y nos vemos en la necesidad de ingresar de alguna manera datos a nuestro programa. Una alternativa es el paso de parámetros (la razón del porqué el método main recibe un arreglo de tipo String), pero si queremos cambiar un dato de ingreso necesitamos volver a ejecutar el programa. Otra solución es utilizar un código como este:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = “”;
while (str != null)
{System.out.print(”ingreso > “);
str = in.readLine();}
Pero resulta algo tedioso de memorizar.Tomando en cuenta lo anterior la gente de Sun ha creado una nueva clase, que permite con un par de líneas realizar la misma tarea. Veamos el siguiente ejemplo:
Scanner entrada = new Scanner(System.in);
System.out.print(”Ingrese un valor: “);
num = entrada.nextInt();
Utilizando la clase Scanner es posible leer los datos ingresados por el usuario desde teclado, para ello debemos utilizar el objeto de entrada por defecto(System.in). El método nextInt() toma lo digitado por el usuario y lo convierte en un número entero (existen varios métodos next… para cada tipo de dato primitivo de Java y para algunos tipos de datos compuestos, como cadena de caracteres).También para la salida de datos, con formato, existe un nuevo método printf. Éste método permite entre otras cosas:
- Redondeo de los decimales de un número.
- Alineación de números en columnas
- Justificación izquierda y derecha
- Representación de números en formato exponencial.
- Mostrar fecha y hora en varios formatos.
El método printf recibe como parámetros el formato y los valores que presentará. Veamos un ejemplo:
System.out.printf(”%d%s\n”, num, ” es primo”);
%d se utiliza para números enteros, mientras %s para cadena de caracteres (String). Esta primera parte se conoce como el formato para mayores detalles vea aquí. Los otros 2 argumentos son los valores que se mostrarán el primero es una variable tipo int y el segundo un String. Pueden encontrar una mayor referencia en el libro Java How to program, sixt Edition de Dietel&Dietel.
El código completo lo pueden descargar desde aquí.


quiero saber como hacer el codigo de una base de datos en java Jframe con conecion con mysql
Por: Jose Andres el Agosto 11, 2008
a las 3:03 pm
Hola José Andrés,
Muy general tú pregunta sé un poco más concreto, ¿qué necesitas? ¿Qué tipo de aplicación estás desarrollando?
Si revisas http://cafelojano.wordpress.com/2007/07/30/liberando-codigo-framework-para-trabajar-con-base-de-datos-y-swing/ puedes encontrar algo.
Espero tus respuestas.
Por: Jorge López (jorgaf) el Agosto 11, 2008
a las 4:38 pm
Gracias, esta bueno y simple tu articulo. Me fue de mucha utilidad
Por: CrazyKnight el Septiembre 2, 2008
a las 8:44 pm
Hola,
Yo estoy iniciando me en java y utilizo BufferedReader para ingresar datos por teclado con Jdeveloper pero por alguna razon que desconosco cuando dijito el valor y le doy enter este no ingresa al programa.
me pueden ayudar?, algo en la configuracion talvez del software.
Muchas gracias
Por: Hernando el Octubre 1, 2008
a las 6:15 pm
Hola Hermando,
Nunca me gustó eso del BufferReader, no sé porque pero prefería utilizar parámetros y la nueva clase Scanner.
Te propongo que depures tú programa, para eliminar cualquier tema de una mala implementación. Trata de probar el mismo código en un IDE diferente para así determinar si se trata de alguna configuración del JDeveloper o es algo con el código.
Trataré, no lo prometo, de hacer algo así
Saludos!
Por: Jorge López (jorgaf) el Octubre 1, 2008
a las 6:26 pm
Hola.
Como muchos, recien me inicio en java y quisiera saber como puedo leer desde comando algun dato del tipo Date mediante la clase Scanner.
Ejm:
System.out.println(”Ingrese fecha de nacimiento”);
fecha_nacimiento=c.next(); this.setFecha_nacimiento(fecha_nacimiento);
Es decir, con el next() y sus variantes puedo leer datos primitivos. Pero como podria hacer para leer un dato tipo Date.
Gracias x su tiempo.
Por: Walter el Octubre 7, 2008
a las 8:25 pm
Hola Walter,
No existe un método directo que te permita realizar la lectura de un tipo de dato Date, en su lugar deberías leer un String con el método next y luego usar SimpleDateFormat para transformar el String a Date. Revisa el siguiente post que explica cómo se transforma String a Date http://cafelojano.wordpress.com/2007/11/21/transformando-string-a-date-uso-de-simpledateformat/
Saludos
Por: Jorge López (jorgaf) el Octubre 8, 2008
a las 8:40 am
Me sirvió mucho la respuesta que diste sobre nextInt. Gracias
Por: Catalina el Octubre 19, 2008
a las 3:58 pm
Hey Hola Jorge
Una preguntaEstuve empezando a ver Java en la Facu. ahora bien en la misma usamos Eclipse o el bloque de Notas, hasta el momento todo bien.
Pero se me dio la idea de cureosear con Netbeans.
Ingrese un codigo simple que me funciona normalmente en Eclipse, en alguna parte del codigo este pide datos al usario y lo hago usando el Scanner in=new Scanner bla bla bla y despues System.out. bla bla y luego dato=in.next etc etc para que ingrese datos supongamos ingresa tu nombre. Ahora en Eclipse no hay problema ingreso mi nombre en la consola le doy enter y continuo ingresando mas datos y viendo el programa ejecutandose con normalidad, pero en Netbeans despues del enter no pasa nada deberia leer el dato ingresado y continuar con el run pero ahi se queda algo parecido a lo que le pasa a Hernando con JDeveloper y lo mismo me pasa con Jbuilder, Intellij, pero en Eclipse todo Ok, ahora lo unico que se me ocurre es que despues de ingresar el dato quizas deberia tipear otra cosa en vez del enter, pero en realidad no lose, espero que me quites esta duda, de antemano muchas gracias.
Por: Fernando el Noviembre 9, 2008
a las 10:32 pm
Muchas gracias, me sirvio bastante
Por: Mario Perez el Noviembre 12, 2008
a las 1:25 pm