Любопытно, что API не предлагает более элегантного решения. Я думаю, что EOFException
будет работать, но мне всегда было предложено видеть исключения как неожиданные события, тогда как здесь вы часто ожидали, что поток объектов завершится. Я попытался обойти это, написав своего рода «маркерный» объект, чтобы обозначить конец потока объектов:
import java.io.Serializable;
public enum ObjectStreamStatus implements Serializable {
EOF
}
Затем в коде, читающем объект, который я проверил для этого объекта EOF в объекте цикл считывания.