W swoim programie posiadam klasę obiekty, gdzie znajduje się wektor obiektów i dodane obiekty różnych klas.
public class obiekty implements java.io.Serializable
{
Vector<Towar> obiekty;
public void obiekty()
{
obiekty = new Vector<Towar>();
// OBIEKTY - zapisane w wektorze
// LAPTOP (Numer ID, Nazwa, Ilość, Wartość netto, Matryca, Dysk, Ram)
obiekty.add(new Laptop(1, "Acer Aspire", 21, 1575, 15.6, 320, 2));
obiekty.add(new Laptop(2, "Sony Vaio", 8, 1860, 15.6, 500, 4));
obiekty.add(new Laptop(3, "Dell Studio", 5, 2100, 15.6, 320, 4));
obiekty.add(new Laptop(4, "Levono ThinkPad", 11, 2078, 14, 160, 2));
obiekty.add(new Laptop(5, "Acer TimelineX", 3, 2520, 15.6, 500, 4));
obiekty.add(new Laptop(6, "Dell E4300", 1, 2389, 13.3, 64, 2));
obiekty.add(new Laptop(7, "Dell E4200", 2, 2467, 12.1, 128, 4));
// MONITOR (Numer ID, Nazwa, Ilość, Wartość netto, Matryca)
obiekty.add(new Monitor(8, "Dell U2410", 9, 674, 21));
obiekty.add(new Monitor(9, "Samsung SyncMaster", 4, 796, 19));
obiekty.add(new Monitor(10, "Iiyama ProLite", 10, 820, 24));
obiekty.add(new Monitor(11, "Asus VW227D", 7, 683, 22));
obiekty.add(new Monitor(12, "LG Flatron", 28, 501, 23));
// DRUKARKA (Numer ID, Nazwa, Ilość, Wartość netto, Typ portu)
obiekty.add(new Drukarka(13, "HP 1120", 20, 273, "USB"));
obiekty.add(new Drukarka(14, "Espon", 5, 230, "RJ45"));
obiekty.add(new Drukarka(15, "LaserJet P2035", 3, 589, "USB"));
obiekty.add(new Drukarka(16, "LaserJet P4515x", 1, 5123, "USB"));
}
}
w innej klasie posiadam opcje zapisu obiektow do pliku, wygląda to tak:
public static final String plik = "obiekty.stan";
obiekty obiektyZapis = new obiekty();
protected void zapis()
{
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(plik));
oos.writeObject(obiektyZapis);
oos.flush(); /* zrzuc bufory na dysk */
oos.close();
}
catch (Exception e)
{
System.out.println("Blad zapisu.");
}
}
Mój problem polega na tym, że gdy np. usune pewien obiekt z wektora poprzez odpowiednia metode to gdy zapisze wszystko do pliku mam ta sama ilość obiektow jak przed usunięciem. Czyli zapisuje mi za każdym razem wszystko to co znajduje się w klasie obiekty.
Metoda usuwania obiektów:
protected void usunObiekt()
{
System.out.print("Podaj numer ID towaru do usunięcia: ");
int size=obiekty.size();
this.sprPrzedzial(1, size);
System.out.println("Obiekt " + obiekty.get(this.n-1).nazwa + " został usunięty.");
obiekty.removeElementAt(this.n-1);
}
Proszę o pomoc