ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
294
294
EMPFEHLEN
-
Da man ja auch mal gerne Daten behalten möchte um sie nicht immer neu eingeben zu müssen habe ich mich mal in die Serialisierung eingelesen. Das hat in einigen Tests aus super geklappt und verlief wie ich das erhofft habe.
Jetzt wollt ich das mal auf mein größeres Projekt umsetzen und hier klappt das nicht mehr.
Zunächst habe ich versuch ein statisches Objekt zu serialisieren, was wohl mit writeObject() aus dem ObjectOutputStream nicht möglich ist.
Es handelt sich um ein Adressbuchobjekt:
Code java:1 2 3 4 5 6 7 8 9 10
public class Adressbuch implements Serializable { private static final long serialVersionUID = 8595141956446128592L; private static Adressbuch adressbuch = new Adressbuch(); private List<Gruppe> gruppen; private int kontakt_zaehler; private int gruppen_zaehler; Konstruktor & Methoden }
Also das Serialisieren von 'adressbuch' klappt nicht und so habe ich mir überlegt die Gruppenliste & die beiden Integer zu serialisieren und sie schließlich dem 'adressbuch' beim Deserialisieren wieder zurückzugeben.
Der Serialisierungscode sieht nun folgendermaßen aus:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
public static boolean abspeichern() { try { FileOutputStream fs = new FileOutputStream("Adressbuch.dat"); ObjectOutputStream os = new ObjectOutputStream(fs); os.writeInt(Adressbuch.gibAdressbuch().gibGruppenZaehler()); os.writeInt(Adressbuch.gibAdressbuch().gibKontaktZaehler()); List gruppen = Adressbuch.gibAdressbuch().gibGruppenListe(); for(int i = 0; i < gruppen.size(); i++) os.writeObject(gruppen.get(i)); os.close(); } catch(IOException ausnahme) { System.err.println("IOException"); return false; } return true; } public static boolean wiederherstellen() { String pfad = "Adressbuch.dat"; if(Dateiverwaltung.istVorhanden(pfad) && Dateiverwaltung.istLesUndSchreibbar(pfad)) { try { FileInputStream fs = new FileInputStream(pfad); ObjectInputStream os = new ObjectInputStream(fs); Adressbuch.gibAdressbuch().setzeGruppenZaehler(os.readInt()); Adressbuch.gibAdressbuch().setzeKontaktZaehler(os.readInt()); Gruppe gruppe; while((gruppe = (Gruppe) os.readObject()) != null) { Adressbuch.gibAdressbuch().hinzufuegenGruppe(gruppe); } } catch (IOException ausnahme) { return false; } catch (ClassNotFoundException ausnahme) { return false; } return true; } else return false; }
Alle Klassen die etwas mit der Serialisierung zu tun haben impelemtieren Serializable aus java.io.
Wenn ich jetzt die Methode abspeichern() aufrufe gibt er mir true zurück (was ja bedeutet das er in keinem catch-Zweig war), aber es ist nirgends eine Datei Adressbuch.dat zu finden.
Wäre sehr dankbar wenn mir jemand auf die Sprünge helfen könnte oder evtl. eine annehmbare Alternative weiß.
Danke & Gruß
ryoshiGeändert von ryoshi (02.07.07 um 20:33 Uhr)
-
Warum klappt das Serialisieren von Adressbuch nicht? Fehlermeldung?
Obwohl ich es mir denken kann ... "private static Adressbuch adressbuch = new Adressbuch();" -> Ein Adressbuch enthält ein Adressbuch, das ein Adressbuch enthält, welches ein Adressbuch enthält, .... ist zwar statisch, aber ich denke das wird trotzdem immer neu initialisiert. Am besten mal als transient markieren oder so ...
Ansonsten würde ich dir empfehlen erstmal mit absoluten Pfaden zu arbeiten. Dann weißt du, wo du deine Adressbuch.dat suchen musst ... Wenn sie wirklich nicht geschrieben wird, häng noch ein os.flush() vor das os.close().
-
Habe heute morgen mal eine Suchmaschine an mein System gelassen und siehe da, es hat meine Datei gefunden.
Sehr komisch, weil der Speicherort nicht der von mir erwartete war.
Egal, die Sache ist somit geklärt.
Kubalac, danke trotzdem für deine Hilfe.
Gruß ryoshi
Ähnliche Themen
-
Serialisierung
Von athlord im Forum JavaAntworten: 6Letzter Beitrag: 18.12.10, 14:17 -
Serialisierung
Von Steve222 im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 21.09.10, 18:26 -
XML - Serialisierung
Von Apprauuuu im Forum C/C++Antworten: 0Letzter Beitrag: 19.07.08, 17:13 -
Serialisierung von Draw2D Objekten?
Von fmacloud im Forum JavaAntworten: 4Letzter Beitrag: 05.07.07, 12:09 -
Serialisierung von Objekten in einer Liste
Von steffi1985 im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 16.06.05, 22:21





Zitieren
Login





