EOFException

Iniciado por ezar147, 4 Noviembre 2017, 20:32 PM

0 Miembros y 1 Visitante están viendo este tema.

ezar147

tengo un código que utilizo para leer los datos de un archivo, pero cuando ejecuto me genera un mensaje con el siguiente error: java.io.EOFException. he investigado un poco, y según lo que comprendo es que esta excepción se genera cuando me salgo del final de archivo.

aqui esta el codigo:
Código (java) [Seleccionar]

   try {
           archivoEntrada = new FileInputStream("prestamos.dat");
           entrada = new  ObjectInputStream(archivoEntrada);
           
           Prestamo aux = (Prestamo) entrada.readObject();
           while(aux != null){
               prestamos.add(aux);
               aux = (Prestamo) entrada.readObject();
           }
       } catch (Exception e) {
           JOptionPane.showMessageDialog(null, e);
       }
       finally{
           try {
               entrada.close();
           } catch (Exception e) {
           }
       }
   }


ivancea96

Eso es lo esperado. Cuandos e acaba el stream, tirará esa excepción. Simplemente pon un try-catch dentro para capturar la excepción EOFException. Cuando se lance, sabrás que se ha acabado.

ObjectInputStream no retorna null cuando se acaba el stream.

En vez del while(aux !0 null), puedes poner simplemente un while(true) (rodeado por un try-catch(EOFException))