Lectura de caracteres por consola en Java

06/abr/2007 Java , , , , , 30 Comentarios
java

La idea de este ejemplo es simple. Consiste en realizar una lectura de un caracteres por consola en Java. Posteriormente mostraremos, nuevamente por la consola, los caracteres leídos. Esto lo podríamos hacer apoyándonos sobre las librerías de streaming de Java. Pero con este simple código podremos leer de la consola sin tener mucho conocimiento.

Lo primero que tendremos que hacer es crear una aplicación Java de consola. Para ello simplemente necesitaremos de una clase y un método main. Por ejemplo:

  1. public class LecturaCaracterConsola {
  2. public static void main(String[] args) throws IOException {
  3. }
  4. }

La lectura se realiza mediante el método System.in.read(), el cual nos devolverá un número entero que es el ASCII del carácter introducido por teclado.

Lo que haremos será leer dentro de un bucle, hasta que el carácter que leamos por el teclado sea el "13". El código "13" representa el salto de línea, el cual, precedido del "10" (retorno de carro), nos indica que el usuario ha pulsado la tecla de "intro".

  1. while (caracter!=13) {
  2. caracter = System.in.read();
  3. System.out.print((char)caracter);
  4. }

Hay que fijarse que al volcar a la pantalla hemos hecho un "casting" del número para mostrar la representación ASCII. Esto lo conseguimos poniendo (char) antes de la variable.

  1. System.out.print((char)caracter);

Lo único que nos quedará es controlar la excepción IOException. Dada la sencillez del ejemplo, simplemente nos limitaremos a lanzarla desde el método main.

Vídeos sobre Java Básico

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

30 comentarios en “Lectura de caracteres por consola en Java”

Víctor Cuervo

tripichurla

Saludos,
Llevo bastante tiempo intentado capturar la entrada de una contraseña desde cmd.exe en un programa java (fragmento de codigo):

Console cons = System.console();
if (cons != null) {
char[] passwd = cons.readPassword(“Introduce tu contraseña: “);
credenciales[1] = passwd.toString();
}

Sería lógico que me mande un NullPointerException si lo ejecuto desde NetBeans pero el caso es que lo ejecuto desde cmd en windows7 con java 1.7 (java -jar miBot.jar) y me sigue dando NullPointerException. Alguna idea?¿

Víctor Cuervo

Víctor Cuervo

Víctor Cuervo

jesus eduardo

Como realizo un codigo eclipse de numeros par D: e inpar S:
que alo ultimo lo muestre en pantalla 😀

Víctor Cuervo

Alexis

De cualquier modo ya me descargué en contra de mi host Grrrrr…

Víctor Cuervo

Andres

Muchas gracias alexis :)

Víctor Cuervo

Alexis

No sé exactamente qué sucedió pero anoche lo dejé arriba. Lo más probable es que levantaron un backup en mi host :’-(
Está nuevamente arriba estimado. Intente ahora

Víctor Cuervo

Andres

Alexis intente descargarlo y no pude alguna solucion¿?¿?

Me envia a una pagina de busqueda de Google

Víctor Cuervo

Alexis

Estimado subí la traducción de su código de C a Java.

Puede rescatarlo desde mi sitio Web.

http://alexisleiva.com/
No se lo que hace exactamente pero puedes depurarlo tu mismo.

El enlace directo al archivo Java es:
http://alexisleiva.com/desarrollos/Aportes/MainJava.java

Saludos.
Alexis Leiva.

Víctor Cuervo

Andres

aca te dejo el codigo si me podes ayudar te lo re agradeceria

http://www.mediafire.com/?27niga54sj012pk

Víctor Cuervo

Alexis Leiva

Andrés podrias indicar cual es el codigo? haber si es posible ayudar

Víctor Cuervo

Andres

tengo un codigo fuente en c y necesito pasarlo a java…me podes ayudar?

karmita.dj@gmail.com

Víctor Cuervo

ren

Lo compile en netbeans y se encicla no sale del ciclo while le cambie el codigo ascii a 10 para que nada mas leyera una linea

Víctor Cuervo

Juan

necestio saber como hacer un totito chino

Víctor Cuervo

abner

ps NECESITO saber como se hace un totito chino, osea, CADA PUNTO QUE HAY QUE HACER eso es lo que no se como se hace, con vectores,si pero el punto en si para que me lea cuando le de click eso no se como hacerlo?

Víctor Cuervo

DuRaN

hola me gustaria saber como pasar un caracter (char) a su correspondiente en ASCII, en java.

gracias.

Víctor Cuervo

jose luis espinosa reyes

NECESITO AYUDA POR FAVOR!!!!!!1
como hago un programa que traduzca código hecho en lenguaje C al lenguaje de programación Java.
• Un archivo con la extensión .c que es el programa a leer.
• Un archivo con la extensión .java que es el resultado de la traducción de un archivo leído en lenguaje C.

ejemplo:
#include
#include
#include
main (){
clrscr();
int a,b,c;
float x1,x2,raiz;
printf(“\n\n\n Introduce El Valor De a:”);
scanf(“%d”,&a);
printf(“\n\n\n Introduce El Valor De b:”);
scanf(“%d”,&b);
printf(“\n\n\n Introduce El Valor De c:”);
scanf(“%d”,&c);

raiz = sqrt((b*b)-(4*a*c)); // calcula la raiz cuadrada
if(raiz<0){
printf("\n\n\n No Se Puede Realizar Esta Operacion");
}

else{
x1= (-b+raiz)/(2*a);
x2= (-b-raiz)/(2*a);
printf("\n\n\n\n * El Valor De x1 Es : %f",x1);
printf("\n\n * El Valor De x2 Es : %f",x2);
}
getch();
return 0;
}

LES AGRADECERI MUSISIMOSSS PORFAAA————

Víctor Cuervo

Alexis Leiva

He tenido problemas con Double.parseDouble(args[1]) cuando el doy como input 0.01 por ejemplo, me responde

C:\….bin>java -jar d:mst.jar 1 0.1 1
java.lang.NumberFormatException: For input string: “0.1”

como puedo entregarle ese Double? es algo raro que reclame por eso :s

Víctor Cuervo

zorro

hola, a todos por ahi tendran un programa que ejecute ecuaciones de primer grado con formula general, que explique el procedimiento o algo que se acerque a eso.

tambien algo donde me indique como puedo crear un menu de seleccion, gracias todo con java

Víctor Cuervo

Marcelo Aliaga

Y que sucede cuando hay datos anteriores en el buffer?

Saludos!

Víctor Cuervo

javier

como cambiar de color en la consola
es decir
menu(en rojo)
1-
2-
3-

gracias

Víctor Cuervo

Gonzalo Ron

Acabo de correr exactamente el codigo que me enviastes y corre sin problemas. Debes tener un problema de NullPointerException en otro sitio. Cuando utilizas la clase Console NO tienes que usar ningun try catch.

Un problema de NullPointerException ocurre cuando posees una referencia con valor null y tratas de acceder a alguno de sus metodos o atributos. Si quieres enviame el pedazo de codigo y te ayudo. Mi correo personal es gonzaloronvera@gmail.com

Víctor Cuervo

Eduardo Ballesteros

Que pena tanta molestia ya intente implementar estos metodos de console

Console console = System.console();
String username = console.readLine(“Usuario? “);

estoy trabajando con eclipse, y no me marca errores, pero al momento de ejecutar tengo un NullPointerExeception

gracias
Tengo que implementar algo de try catch?????

Víctor Cuervo

Gonzalo Ron

La versión de Java 1.6 incluyó una nueva clase llamada Console, con métodos muy útiles para la impresión y captura de la consola.

Haces lo siguiente:

Console miConsola = System.console();

y ya con el objeto de tipo Console se pueden invocar metodos muy utiles como readLine(), readPassword(), printf(), etc.

El metodo printf es muy util porque es parecido el printf que se utiliza en Lenguaje C.

Revisa la API y vas a poder ver que esta clase es de mucha utilidad.

Saludos.

P.D. Te recomiendo este foro que es bastante activo en cuanto a Tecnologia Java: http://espanol.groups.yahoo.com/group/SoloJava/

Víctor Cuervo

Eduardo Ballesteros

Excelente tu pagina, me han gustado las expliaciones, pero me surge una duda, el metodo System.in.read() solo lee de a un solo caracter????, no existe la posbilidad de leer digamos 3 digitos y haga concatenacion de estos, me explico necesito leer por consola digamos el numero 999 como hago????

Muchas gracias

Víctor Cuervo

Gonzalo Ron

String linea = System.console().readLine();

A partir de la version 1.6

Víctor Cuervo

Yenier

como hago aplicaciones que corran en la pantallita negra de la consola . Digamos que quiero que me traduzcan este codigo de c++ a java porque no se como manejar el flujo de datos en java . Yo estoy aprendiendo en el NetBeans
este es el codigo a traducir

int entero ;
cin >> entero ;
cout

Víctor Cuervo

erika

hola necesito algo muy simple alguien me puede ayudar con un ejercicio que me muestre 10 edades digitadas y al final me diga cual es mayor de edad hecho en java

Víctor Cuervo

nuse

Muy mal explicado, haber, si es un tutorial muy sencillo para novatos a que viene esta explicación tan rara? Es decir, lo del control de errores un novato flipará en colores asi explicado, de hecho siguien exáctamente lo que dices da error XD, explicate mejor que los novatos fliparán con este tutorial.

Víctor Cuervo

lineadecodigo

Este código es muy sencillo y está orientado al aprendizaje. Si quieres hacer lecturas más avanzadas te recomiendo que te leas Lectura de datos por consola en Java.

En este se explica como leer String, las cuales puedes convertir a Double de forma muy sencilla.

Double.parseDouble(String);
Víctor Cuervo

ichramm

de esta forma puedo leer un double??
es decir, puedo guardar los char en un string y luego parsearlos

alguna ayuda con el codigo??

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*