Problema con BufferedReader al haceer un readline()

azurik
16 de Septiembre del 2004
Pues eso, que no hay manera a ver si alguien sabe que demonios hago mal, un saludo.

________________________


import java.io.*;

public class prueba
{

public prueba()
{

}

public int leer()
{

int n =0;
BufferedReader flujo = new BufferedReader(new InputStreamReader(System.in));

String datoEntrado = flujo.readline();
n = Integer.parseInt(datoEntrado);

return n;
}
}

cu?
16 de Septiembre del 2004
no sera tu compilador? prueba con otro

astur
16 de Septiembre del 2004
No controlas las excecpiones que pueden saltar ni al crear el buffer ni al leer una linea ni al pasar a entero la linea. Cada una de esas "instrucciones" puede generar una excepcion las dos primeras son de tipo IOException y la última NumberFormatException( mira la documentacion de java)

Azurik
16 de Septiembre del 2004
Llebabas razon, y ahora el programa va, pero cuando se hace la operacion readLine() al ejecutarse el programa, se lanza la excepcion siguiente:

java.io.IOException: Controlador no válido
java.lang.NumberFormatException: null

Que crees que podra ser? No deja introducir datos por teclado ni nada.. simplemente lanza la excepcion

fernando_tapia_c
16 de Septiembre del 2004
Lo que sucede amigo es que cuando ingresas algun texto, en tu caso la intencion es ingresar un entero,
este deberia llegar como (por ejemplo)
"123", pero cuando das un enter en el prompt.. se crea un salto de linea por tanto.. llega "123n", y este es un String que no se puede convertir a entero.. por eso el NumberFormatException..
Espero haberte ayudado
Fernando Tapia