¿Alguien sabe por qué me devuelve un error de NumberFormatException?
Publicado por Paco01 (32 intervenciones) el 24/11/2017 19:28:39
Hola. os explico lo que hace esta función. Básicamente busca objetos en un fichero con el siguiente formato: Id;nombre;año y los muestra en un ListView. Cada linea del fichero es un coche, pero al llegar al último objeto del fichero me da un error de NumberFormatException. Obviamente he comprobado que esté bien escrito en el fichero, y lo está, pero siempre, al llegar al último coche del fichero, me da el error, da igual la cantidad de coches que haya en el fichero, siempre es en el último. Este es el método:
Gracias. lo que hay escrito en el fichero es:
1;Seat Leon;1999
2;Seat Toledo;1991
3;Seat Cordoba;1993
4;Seat Panda;1980
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public void CargarFicheroEnLista() {
Coche c = new Coche();
// Lista de coches
data = FXCollections.observableArrayList();
// Creamos los objetos File y BufferedReader para leer el fichero
File f;
BufferedReader br = null;
// En cadena se almacenarán las lineas del fichero, una por una
String cadena;
// Creamos las variables con las que se crearán el objeto que será guardado en la colección
int ID;
String nombre;
int año;
// Se usará un split sobre el array para separar cada elemento
String[] partes;
try{
// A File le pasamos fichero donde se almacenan los datos de los coches.
f = new File("Coches.txt");
br = new BufferedReader(new FileReader(f));
// Mientras cadena no devuelva null, estará leyendo lineas en el fichero
while((cadena = br.readLine()) != null){
partes = cadena.split(";");
// Cada variable tomará su valor correcto, y se realizarán los castings necesarios.
ID = Integer.parseInt(partes[0]);
nombre = partes[1];
año = Integer.parseInt(partes[2]);
// Se crea un objeto con los parámetros del fichero de texto y se añade a la colección.
c = new Coche(ID, nombre, año);
data.add(c);
}
lv.setItems(data);
// Control de excepciones.
} catch(FileNotFoundException e){
JOptionPane.showMessageDialog(null, "No se encuentra el fichero");
} catch(IOException e){
JOptionPane.showMessageDialog(null, "Error de entrada/salida");
}
}
Gracias. lo que hay escrito en el fichero es:
1;Seat Leon;1999
2;Seat Toledo;1991
3;Seat Cordoba;1993
4;Seat Panda;1980
Valora esta pregunta


1