Objekt speichern und laden

Hieu

Aktives Mitglied
Hallo Leute ich würde gerne eine Instanz von dieser Klasser speichern und dann dann laden
Code:
package Klassen;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;

/**
 * Klasse für die Erstellung einer Firma.
 * @author Hieu Trung Vu.
 *
 *
 */
 public class Autovermietung implements Serializable {
    
    
    
    /**
     *  Attribute von den erstellten Firmen, wie z.B. der Name, die Adresse, die Privat - und Geschaeftskunden.
     */
    
    private String name;
    private Adresse adresseautovermietung;
    private ArrayList<Privatkunde> privatkunden;
    private ArrayList<Autos> autos;
    private ArrayList<Geschäftskunde> geschäftskunden;
    private ArrayList<ArrayList<Rechnung<Privatkunde>>> privatkundenrechnungen;
    private ArrayList<ArrayList<Rechnung<Geschäftskunde>>> geschäftskundenrechnungen;
    private HashMap <String, Rechnung<Geschäftskunde>> hashmapgerechnungen;
    private HashMap <String, Rechnung<Privatkunde>> hashmapprivrechnungen;
    private ArrayList<Adresse> adressen;
    /**
     *
     *  Objektzaehler.
     */
    public static int anzahlautovermietung = 0;

    
    /**
     * Konstruktor: Sobald Objekt erstellt wurde, wird Objektzaehler um 1 erhöht.
     */
    
    public Autovermietung() {
        //Zaehler erhoehen
        anzahlautovermietung++;
        }
    
    //Setter                       

    /**
     *
     * @param value der Name für das erstellte Objekt.
     */
public void setname(String value) {
    name = value;

                                   }
/**
 *
 * @param value Die Adresse von der erstellten Firma setzen.
 */
public void setadresseautovermietung(Adresse value) {
    adresseautovermietung = value;
}



/**
 *
 * @param value setzt die Autos der Firma fest.
 */
public void setautos(ArrayList<Autos> value) {
    autos = value;
}


    //Getter
/**
 *
 * @return gibt den Namen der Firma zurueck.
 */
public String getname() {
    return name;
}
/**
 *
 * @return gibt die Adresse der Firma zurueck.
 */
public Adresse getadresseautovermietung() {
return adresseautovermietung;
}


/**
 *
 * @return gibt alle Autos der Firma zurück.
 */
public ArrayList<Autos> getautos() {
    return autos;
}

/**
 *
 * @return gibt alle Privatkunden zurueck.
 */
public ArrayList<Privatkunde> getPrivatkunden() {
    return privatkunden;
}

/**
 *
 * @param privatkunden setzt die Privatkunden fest.
 */
public void setPrivatkunden(ArrayList<Privatkunde> privatkunden) {
    this.privatkunden = privatkunden;
}
/**
 *
 * @return gibt Geschäftskunden zurueck.
 */
public ArrayList<Geschäftskunde> getGeschäftskunden() {
    return geschäftskunden;
}

/**
 *
 * @param geschäftskunden setzt Geschäftskunden fest.
 */
public void setGeschäftskunden(ArrayList<Geschäftskunde> geschäftskunden) {
    this.geschäftskunden = geschäftskunden;
}

public ArrayList<ArrayList<Rechnung<Privatkunde>>> getPrivatkundenrechnungen() {
    return privatkundenrechnungen;
}

public void setPrivatkundenrechnungen(ArrayList<ArrayList<Rechnung<Privatkunde>>> privatkundenrechnungen) {
    this.privatkundenrechnungen = privatkundenrechnungen;
}

public ArrayList<ArrayList<Rechnung<Geschäftskunde>>> getGeschäftskundenrechnungen() {
    return geschäftskundenrechnungen;
}

public void setGeschäftskundenrechnungen(ArrayList<ArrayList<Rechnung<Geschäftskunde>>> geschäftskundenrechnungen) {
    this.geschäftskundenrechnungen = geschäftskundenrechnungen;
}

public HashMap <String, Rechnung<Geschäftskunde>> getHashmapgerechnungen() {
    return hashmapgerechnungen;
}

public void setHashmapgerechnungen(HashMap <String, Rechnung<Geschäftskunde>> hashmapgerechnungen) {
    this.hashmapgerechnungen = hashmapgerechnungen;
}

public HashMap <String, Rechnung<Privatkunde>> getHashmapprivrechnungen() {
    return hashmapprivrechnungen;
}

public void setHashmapprivrechnungen(HashMap <String, Rechnung<Privatkunde>> hashmapprivrechnungen) {
    this.hashmapprivrechnungen = hashmapprivrechnungen;
}

public ArrayList<Adresse> getAdressen() {
    return adressen;
}

public void setAdressen(ArrayList<Adresse> adressen) {
    this.adressen = adressen;
}


                                
}

dazu habe ich diese Methoden geschrieben
Code:
private static void vermietungsdatenladen() {
        ObjectInputStream ois = null;
        FileInputStream fis = null;
        try {
          fis = new FileInputStream("Daten/objekte.ser");
          ois = new ObjectInputStream(fis);
          Object obj = ois.readObject();
          if (obj instanceof Autovermietung) {
            Autovermietung so = (Autovermietung)obj;
          
          }
        }
        catch (IOException e) {
          e.printStackTrace();
        }
        catch (ClassNotFoundException e) {
          e.printStackTrace();
        }
        finally {
          if (ois != null) try { ois.close(); } catch (IOException e) {}
          if (fis != null) try { fis.close(); } catch (IOException e) {}
        }
    
    
        
    }


    private static void vermietungsdatenspeichern() {
        File folder1 = new File("Daten");
        
        
        if(folder1.exists()) {
            System.out.println("Ordner existiert bereits");
        }else {
            folder1.mkdirs();
            System.out.println("Ordner wurde neu erstellt");
        }
        
        
        ObjectOutputStream oos = null;
        try {
        oos = new ObjectOutputStream(new FileOutputStream("Daten/objekte.ser"));
        oos.writeObject(Projekt.firmen[0]);
        }
        catch (IOException e) {
        } finally {
        if (oos != null) try {oos.close();} catch (Exception exc) {}}
    }
Code:

das speichern scheint zu funzen aber wenn ich das Objekt laden möchte und ein Attribut der Instanz ausgeben möchte, kommt diese Fehlermeldung
Code:
Auto wurde zugewiesen
Auto wurde zugewiesen
Auto wurde zugewiesen

 (1) Privatkunde anlegen
 (2) Geschäftskunde anlegen
 (3) Auto anlegen
 (4) Kunde mietet ein Auto
 (5) Kunde mit evtl. gemietetem Auto anzeigen (Auswahl durch Kundennummer
 (6) alle unvermieteten Autos anzeigen
 (7) Auto evtl. mit aktuellem Mieter anzeigen
 (8) Auto abgeben und passende Rechnung erstellen
 (9) Rechnung anzeigen
(10) Alle Rechnungen anzeigen
(11) Vermietungsdaten speichern
(12) Vermietungsdaten laden
(13) Kunden nach Namen sortiert als CSV-Datei exportieren
(14) Beenden
12
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Klassen.Adresse
    at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1653)
    at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2410)
    at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2304)
    at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2142)
    at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646)
    at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:464)
    at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
    at mal/Methoden.methods.vermietungsdatenladen(methods.java:198)
    at mal/Methoden.methods.auswahl(methods.java:169)
    at mal/Methoden.methods.menue(methods.java:133)
    at mal/Klassen.Projekt.main(Projekt.java:182)
Caused by: java.io.NotSerializableException: Klassen.Adresse
    at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185)
    at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
    at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
    at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
    at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
    at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
    at mal/Methoden.methods.vermietungsdatenspeichern(methods.java:235)
    at mal/Methoden.methods.auswahl(methods.java:167)
    ... 2 more
es scheint etwas mit dieser Klasse
Code:
package Klassen;

import java.io.Serializable;

/**
 * Klasse für die Erstellung einer Adresse.
 * @author Hieu Trung Vu.
 *
 */
public class Adresse implements Serializable {
    
    //attribute
    /**
     * Attribute der Klasse Adresse : Adresszeile 1, Adresszeile 2, Postleitzahl und Ort.
     */
    private String adresszeile1;
    private String adresszeile2;
    private String postleitzahl;
    private String ort;
    
    /**
     * Objektzaehler.
     */
    public static int anzahladressen = 0;
    
    //Konstruktor
    /**
     * Konstruktor bei dem bei der Erstellung einer Adresse alle Attribute festgelegt werden.
     * @param a1 Adresszeile 1.
     * @param a2 Adresszeile 2.
     * @param pz Posteleitzahl.
     * @param o Ort.
     */
    
    public Adresse(String a1, String a2,String pz, String o) {
        adresszeile1 = a1;
        adresszeile2= a2;
        postleitzahl = pz;
        ort = o;
        anzahladressen++;
                                                          }
    
    //getter
    /**
     *
     * @return gibt Adresszeile 1 zurueck.
     */
    public String getadresszeile1() {
        return adresszeile1;
    }
    /**
     *
     * @return gibt Adresszeile 2 zurueck.
     */
    public String getadresszeile2() {
        return adresszeile2;
    }
    /**
     *
     * @return gibt die Postleitzahl zurueck.
     */
    public String getpostleitzahl() {
        return postleitzahl;
    }
    /**
     *
     * @return gibt den Ort zurueck.
     */
    public String getort() {
        return ort;
    }
    
    /**
     * Gibt alle Adressen aus (Testzweck).
     */
    public void alleadressenausgeben() {
        for (int i = 0;i< anzahladressen;i++) {
            System.out.println(Projekt.adressen.get(i).adresszeile1 + " " + Projekt.adressen.get(i).adresszeile2 + " " + Projekt.adressen.get(i).ort + " " + Projekt.adressen.get(i).postleitzahl);
        }
    }
}
zutun zu haben ich hab nur leider keine Idee wie ich das beheben könnte. Wäre mega schön wenn mir jemand helfen könnte.
 

mihe7

Top Contributor
das speichern scheint zu funzen
Ah, ja:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Klassen.Adresse
...
Caused by: java.io.NotSerializableException: Klassen.Adresse
...
at mal/Methoden.methods.vermietungsdatenspeichern(methods.java:235)
:)

Wobei ich jetzt ad hoc nicht sehe, was an Adresse nicht serialisierbar sein sollte. Lösch mal die objekte.ser, bau das Projekt neu und probier es nochmal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Objekt speichern und laden Allgemeine Java-Themen 1
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
M neues Objekt speichern, nicht Referenz Allgemeine Java-Themen 10
J Objekt in Datei speichern mittels Streams Allgemeine Java-Themen 6
M serialisertes Objekt in ZIP speichern Allgemeine Java-Themen 2
R Problem beim speichern von eigenem objekt Allgemeine Java-Themen 6
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
el_niiinho13 Objekt auf der Konsole ausgeben lassen Allgemeine Java-Themen 8
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
SaftigMelo In einem Winkel Objekt bewegen Allgemeine Java-Themen 2
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
S Variable als Objekt Name Allgemeine Java-Themen 3
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
T Objekt in Array packen Allgemeine Java-Themen 6
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M Klassen Objekt weiter geben Allgemeine Java-Themen 1
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
S Applet Überprüfen ob ein Objekt angeklickt wurde Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
K Textdatei als Objekt Allgemeine Java-Themen 4
Viktim Classenname zu Objekt Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
J OOP Überwachen, ob ein Objekt erzeugt wird Allgemeine Java-Themen 9
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
F Neues Objekt aus .CSV definition Allgemeine Java-Themen 3
K Methoden Objekt wird nicht erkannt Allgemeine Java-Themen 11
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
T Objekt kontaktiert seinen "erzeuger" Allgemeine Java-Themen 5
S Objekt orientierte Programmierung Allgemeine Java-Themen 7
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
T WeakReference/PhantomReference: Mitbekommen WELCHES Objekt nun GC'ed wird Allgemeine Java-Themen 2
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
L Klassen Polymorphie:2 Attribute gleichen Namens in einem Objekt Allgemeine Java-Themen 6
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
V Objekt löschen Allgemeine Java-Themen 7
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
D Eigenen Objekt Pool Allgemeine Java-Themen 15
C blueJ: Objekt wird nicht in Objektleiste angezeigt Allgemeine Java-Themen 8
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
U Konstante in Objekt definieren Allgemeine Java-Themen 6
D this mit Objekt überschreiben Allgemeine Java-Themen 17
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
E Objekt erstellen Allgemeine Java-Themen 7
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
B Speicherverbrauch Objekt-Referenz Allgemeine Java-Themen 11
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
A Iterationen einer XML-Datei in einem Objekt sichern Allgemeine Java-Themen 5
R Objekt zur Laufzeit zerstören? Allgemeine Java-Themen 12
hdi Frage zur Objekt Initialisierung Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben