Я занимаюсь расписанием, и я сохраняю .txt все мои объекты, это прекрасно работает, проблема возникает, когда я читаю их, свою программу читает, когда наступает конец файла, моя программа не знает, что делать, я не стану использовать свой код, потому что сейчас это беспорядок, но вот код моего учителя, который я использую как шаблон сделать мину:Исключение с ObjectInputStream во время чтения и до конца файла
try{
//***Instructions for reading***
//It creates a streamobject with the file's name and asigned format
FileInputStream fileIn = new FileInputStream("Serializado.txt");
//It creates an inputobject, so it can represent the object
ObjectInputStream objIn= new ObjectInputStream(fileIn);
while (fileIn != null) {
//with readObject() method, it extracts the object's content
obInp= (NewAlumno) objIn.readObject(); //Se hace un "cast" a NewAlumno
System.out.print("Nombre :" + obInp);
System.out.print(", Sexo: " + obInp.getSexo());
System.out.print(", Direccion: "+ obInp.getDireccion());
System.out.print(", Promedio: " + obInp.getpromedioPoo());
System.out.print(", Telefono: " + obInp.getTelefono()+"\n");
}
objIn.close();
} catch(Exception e){}
}
Как вы можете видеть, исключение поймать его пуст, поэтому, когда я использовать код своего учителя, он выглядит как он безупречно работает, но я поставил Println там, и это всегда печатает его. Это означает, что что-то не так, и я уверен, что это
while(fileIn != null)
bacause Netbeans говорит, что это выражение никогда не нуль. Так что я предполагаю, что программа не знает, что делать после того, как он достигнет конца файла ... Любые sugestions pals? Спасибо заранее!
Вот исключение:
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2577)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1315)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at profegraba.Persistencia.main(Persistencia.java:81)
Поместите 'e.printStackTrace()' в предложение catch и опубликуйте результаты. –
здесь: java.io.EOFException \t в java.io.ObjectInputStream $ BlockDataInputStream.peekByte (ObjectInputStream.java:2577) \t в java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1315) \t на Java. io.ObjectInputStream.readObject (ObjectInputStream.java:369) \t at profegraba.Persistencia.main (Persistencia.java:81) –
@HectorHammett Это исключение означает, что вы достигли конца файла, но вы по-прежнему запрашиваете больше объектов для читать. Программа больше не может читать, потому что она достигла конца файла, поэтому исключение вызывается. – afsantos