I want write object to file and read them, but I'm getting error. Line 51 in Main.java is while loop which should display objects.
Exception in thread "main" java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2626)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1321)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
    at com.sdajava.rwobj.Main.main(Main.java:51)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
My code: write object first and read them. The data is write to a file.
String fileName = "c://Users//lukas//obj.txt";
Person p1 = new Person("Jan", "Kowalski", 21);
Person p2 = new Person("Jan", "Kowalski", 21);
OutputStream  fileOutputStream = null;
ObjectOutput objectOutputStream = null;
OutputStream bufferOut  = null;
try {
    fileOutputStream = new FileOutputStream(fileName);
    bufferOut = new BufferedOutputStream(fileOutputStream);
    objectOutputStream = new ObjectOutputStream(bufferOut);
    objectOutputStream.writeObject(p1);
    objectOutputStream.writeObject(p2);
    objectOutputStream.close();
} finally {
    if (objectOutputStream != null) {
        objectOutputStream.close();
    }
    fileOutputStream.close();
    bufferOut.close();
    objectOutputStream.close();
}
try {
    FileInputStream fileInputStream = new FileInputStream(fileName);
    InputStream bufferIn = new BufferedInputStream(fileInputStream);
    ObjectInputStream objectInputStream
            = new ObjectInputStream(bufferIn);
    Person readCase = null;
    List<Person> recordList = new ArrayList<>();
    do {
        readCase = (Person) objectInputStream.readObject();
        if (readCase != null) {
            recordList.add(readCase);
        }
    } while (readCase != null);
    fileOutputStream.close();
    objectOutputStream.close();
} catch (FileNotFoundException err){
    err.printStackTrace();
}
What is wrong?
 
     
    