Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ezar147 en 4 Noviembre 2017, 20:32 pm



Título: EOFException
Publicado por: ezar147 en 4 Noviembre 2017, 20:32 pm
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
  1.    try {
  2.            archivoEntrada = new FileInputStream("prestamos.dat");
  3.            entrada = new  ObjectInputStream(archivoEntrada);
  4.  
  5.            Prestamo aux = (Prestamo) entrada.readObject();
  6.            while(aux != null){
  7.                prestamos.add(aux);
  8.                aux = (Prestamo) entrada.readObject();
  9.            }
  10.        } catch (Exception e) {
  11.            JOptionPane.showMessageDialog(null, e);
  12.        }
  13.        finally{
  14.            try {
  15.                entrada.close();
  16.            } catch (Exception e) {
  17.            }
  18.        }
  19.    }
  20.  


Título: Re: EOFException
Publicado por: ivancea96 en 5 Noviembre 2017, 15:26 pm
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))