Я вот так делал. Работает быстрее чем стандартная сериализация. Но есть задача.
Ты сам должен реализовать сохранение всех полей класса во внешний файл
(ObjectOutput). Можно через операции над байтами.
Еще сложнее реализовать чтение. Т.к. нужно различать неинициализированные
состояния полей. Например у студанта есть дата рождения но имя еще не задано.
Тоесть надо придумать как в файл писать признак null для поля name.
public class Student implements Externalizable {
private String name;
private LocalDate birthday;
@Override
public void writeExternal(ObjectOutput out) throws IOException {
// TODO:
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
// TODO:
}
}
Есть коробочная библиотека Kryo которая это делает в более автоматическом режиме.
Но я так понимаю что автор очень хотел сам вручную поразвлекаться.