Java - leer de archivo

   
Vista:
Imágen de perfil de Charly

leer de archivo

Publicado por Charly cdum77@hotmail.com (104 intervenciones) el 30/08/2016 12:15:02
Tengo una aplicación para crear viajes y mostrar sus datos (numero, conductor y precio).
Le he hecho dos métodos para tener los datos en un archivo (leer y escribir).
Al ejecutar el programa funciona bien, pero al introducir un viaje nuevo en el jlist de viajes me vuelve a crear todos los viajes que hay en el archivo.
Adjunto la carpeta del proyecto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

leer de archivo

Publicado por jorge (7 intervenciones) el 30/08/2016 17:33:49
Los datos del array siempre serán temporales y permanecen allí durante la sesión, si quieres que solo aparezca el último viaje ingresado, debes limpiar el array, aplicar un .clear() pues los datos quedan visibles en la lista viajes que muestras por pantalla.

Ahh y por cierto si se da agregar sin haber ingresado algo saca error, aplicar una validación para que si intentan grabar sin haber ingresado los datos requeridos muestre un mensaje, igual que como lo haces cuando eliminas, donde colocas mensaje diciendo que se debe seleccionar algo antes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly

leer de archivo

Publicado por Charly (104 intervenciones) el 30/08/2016 20:15:37
Jorge muchas gracias por la respuesta.
Ya he validado que tenga que estar todo relleno para agregar un viaje,
Pero lo del clear donde lo tengo que poner?
He probado al final del método agregar y me borra todo.
He probado despues de escribir y al darle al boton tambien borra todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

leer de archivo

Publicado por Jorge (7 intervenciones) el 30/08/2016 21:10:34
Después de que pintes los datos en la lista que ve el usuario, le aplicas al array .clear();

Así el array siempre quedará vacío y solo almacenará el último viaje y lo irás agregando a la lista con add una vez que le den al botón d e agregar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly

leer de archivo

Publicado por Charly cdum77@hotmail.com (104 intervenciones) el 30/08/2016 21:23:54
Te refieres a esto?:
1
2
3
4
5
6
7
public void mostrarListaViaj(){
        viajes.clear(); // SI NO LO PONES AQUI TE JUNTA TODOS
        for(Viaje v:arrViaj){
            viajes.addElement(v.toString());
        }
       viajes.clear(); // AQUI NO SIRVE
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

leer de archivo

Publicado por Jorge (7 intervenciones) el 30/08/2016 21:49:53
El problema está es por el archivo: viajes.dat, tú siempre lees ese archivo y el va a tener siempre los datos anteriores, entonces al leerlo, pues vuelve y carga todo lo que el ya tiene almacenado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly

leer de archivo

Publicado por Charly cdum77@hotmail.com (104 intervenciones) el 30/08/2016 21:56:50
OK muchas gracias por todo Jorge.
Lo voy a dejar así, que lo presento el jueves y mañana me voy de viaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

leer de archivo

Publicado por Jorge (7 intervenciones) el 31/08/2016 02:56:48
Revisate tu correo por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly

leer de archivo

Publicado por Charly cdum77@hotmail.com (104 intervenciones) el 31/08/2016 08:44:05
Si Jorge, tenias toda la razón. Gracias.
He cambiado lo que me dijiste en tu correo y ahora funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar