Logo

¡Bienvenido a Stratos!

Acceder

Foros



Novato en Java - Dudas entrada/salida

Iniciado por Capiflash, 03 de Marzo de 2008, 11:23:08 PM

« anterior - próximo »

Capiflash

Bueno , es mi primera toma de contacto con Java por exigencias del guion. He estado leyendo y demas , y me he puesto a hacer una de las cosas más chorras que se pueden hacer , declarar 4 variables ( 3 string y 1 int ) y leerlos por consola.
El resultado... algo extraño , a mi parecer el programa debería de permitirme escribir una linea , darle a enter , y pasar a la siguiente , asi 4 veces , pues bien , resulta que escribo 3 lineas y me da una excepcion.

Pongo el código a ver si alguien me ilumina , seguramente sera una chorrada y se arregla con poca cosa ,pero estoy cegado.


class prueba {
   public static void main(String[] args) throws IOException{
    try{
        BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
        // Leemos los datos
        String nom = teclado.readLine();
        String ape = teclado.readLine();
        String titu = teclado.readLine();
        String gr = teclado.readLine();
        int grup = Integer.parseInt(gr);
    }catch(Exception e){e.printStackTrace();}
   }
}


Esto es lo que muestra en la consola :
Citar
--------------------Configuration: <Default>--------------------
imm
cde
gda
java.lang.NumberFormatException: For input string: ""
   at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
   at java.lang.Integer.parseInt(Integer.java:468)
   at java.lang.Integer.parseInt(Integer.java:497)
   at prac01.main(prac01.java:38)

Process completed.

Saludos!

Vicente

Lo último que leiste parece ser un "" y eso no es un número.

O eso dice la excepción :p

Capiflash

Si , pero el caso es que segun el código ( y segun yo creo q me puedo equivocar :P ) , la consola deberia dejarme introducir 4 String , y solo me deja introducir 3. Cuando yo le doi al enter al escribir la 3ª ristra , voy a escribir la 4ª q es la q convierto luego a int , pero para ese entonces ya me ha saltado la excepcion... no me lee mas que 3 , eso es lo que me entraña

Capiflash

Si , pero el caso es que segun el código ( y segun yo creo q me puedo equivocar :P ) , la consola deberia dejarme introducir 4 String , y solo me deja introducir 3. Cuando yo le doi al enter al escribir la 3ª ristra , voy a escribir la 4ª q es la q convierto luego a int , pero para ese entonces ya me ha saltado la excepcion... no me lee mas que 3 , eso es lo que me entraña

Capiflash

Bueno , debia de ser que el buffer se llenaba.

Con un System.out.flush() despues de cada lectura del teclado lo he solucionado.


        System.out.print("Nombre : ");
        nom = teclado.readLine();
        System.out.flush();






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.
Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.