mvnForum Homepage Bienvenido domingo  |  Terminar sesión   
  Búsqueda  
  Indice |  Temas Recientes |  Quién Está en Línea |  Lista de Usuarios |  Mi Perfil |  Búsqueda |  Ayuda


Ir a »
Total de mensajes en este tema: 2 [Eliminar este Tema] [Mover este Tema]
[Ańadir a Mis Favoritos] [Ańadir un aviso a este tema] [Publicar nuevo tema]
Autor
Tema Anterior Este tema ha sido visto 35 veces y tiene 1 respuesta Tema Siguiente
Masculino jperles
Extranjero



Ingresó: Feb 20, 2004
Mensajes: 1
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Función readObject en leeFiguras() Responder a este mensaje
Responder citando
[Eliminar este Tema]

Hola a todos, vamos a ver..
En la clase IOFiguras metodo leeFiguras() tenemos el siguiente código

while ((f = (Figura)(ois.readObject())) != null)
alAux.add(f);

Pues bien a mi me da una excepción del tipo IOException debido a que cuando lee el final del fichero NO pone
null el objecto f de tipo Figura y claro esta función siempre me devuelve null (salta al catch).

He probado quitando el while y leyendo un solo objecto almacenado en el fichero y me lo devuelve bien, (esta bien guardado ok),

Alguna ayuda....??

Gracias a todos
[Jul 16, 2004 11:54:31 AM] Print Post Reportar mensaje ofensivo  Ir al inicio 
Masculino nacho
Miembro



Ingresó: Feb 1, 2004
Mensajes: 63
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Re: Función readObject en leeFiguras() Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Hola.

Es una "errata" mía. El método "readObject" devuelve siempre el objeto leído, y si llega al final de fichero lanza una excepción. Con lo que para leer objetos complejos de ficheros, tendremos que estar leyendo y guardando en una lista, hasta que salte la excepción:

En realidad el bucle debería funcionar, sólo que la comparación con null no llega a cumplirse nunca, se sale del bucle porque salta la excepción. Es equivalente a poner:

ArrayList alAux = new ArrayList();
try
{

while (true)
{
Figura f = (Figura)(ois.readObject());
alAux.add(f);
}

} catch (Exception e) {}

// Aquí ya tendríamos la lista con todos los objetos del fichero
[Jul 16, 2004 12:49:31 PM] Print Post    iiborra@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
[Versión imprimible] [Publicar nuevo tema]