Stratos: Punto de Encuentro de Desarrolladores

¡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.