Я пытаюсь сохранить довольно большие классы.
Примечание:
Я сохраняю и загружаю, используя Java ObjectOutputStream и ObjectInputStream, где в методе 1 Integer [] - сохраняемый объекти в методе два буфера OutputStream / s (byte []) сохраняются.
Что я хочу больше всего:
- быстрое сохранение и загрузка во время выполнения
- легко понять другим
- легко редактировать после добавления или удаления из класса
Каков наилучший способ сохранения классов типов Java из двух следующих:
Метод 1: (IoStreamSerializaion - это интерфейс с двумя используемыми ниже методами)
public final class Item implements IoStreamSerialization {
private int id;
private int amount;
public Item(int id, int amount) {
super();
this.id = id;
this.amount = amount;
}
@Override
public void loadInputStream(InputStream is) {
id = is.readUnsignedByte();
amount = is.readInt();
}
@Override
public OutputStream saveOutputStream() {
OutputStream os = new OutputStream(2);
os.writeByte(id);
os.writeInt(amount);
return os;
}
}
Метод 2: (IoBinary - это интерфейс с двумя используемыми методами ниже, гдеуниверсальный тип arg - это то, что нужно сохранить)
public final class Item implements IoBinary<Integer[]> {
private int id;
private int amount;
public Item(int id, int amount) {
super();
this.id = id;
this.amount = amount;
}
@Override
public void loadBinary(Integer[] binary) {
id = binary[0];
amount = binary[1];
}
@Override
public Integer[] saveBinary() {
return new Integer[] { id, amount };
}
}