Auslesen, bis keine Objekte mehr vorhanden sind



  • Optimizer meinte sicher, daß es normalerweise quatsch ist, so lange zu lesen bis nix mehr geht...

    Immerhin speicherst Du ja normalerweise nach einem bestimmten Schema ab, z.B.

    - speichere Objekt Spielerposition
    - speichere Objekt Inventar
    - speichere Vector Gegnerpositionen

    Dementsprechend mußt Du die 3 auch genau so wieder laden.

    Hängt natürlich vom konkreten Anwendungsfall ab...



  • Wenn ich das ganze manuell machen will, geht das auch nicht. Es geht nur, wenn ich ein Objekt auslese, aber sobald es mehr sind, kommt eine IOException beim Auslesen.

    A a = (A) object.readObject();
        A b= (A) object.readObject();
        taLesen.setText(a.spieltag() + "\n" + a.Spiel1Gewonnen() + "\n\n" +
                          a.SpielGewonnen2() + b.Spiel1Gewonnen());
        object.close();
    

    Liebe Grüße
    Real



  • Vielleicht speichere ich nicht korrekt?

    object.writeObject(a[aa]);
            object.flush();
            object.close();
    

    Liebe Grüße
    Real



  • Hallo,

    du verstehst das Prinzip nicht. Kein Mensch, der deine Datei ausliest, weiss wofür die Objekte sind. Beispiel:
    du speicherst für ein Spiel erst die Daten der Spieler (Kontostand, usw.)
    dann speicherst du 98364 Einheiten-Objekte
    dann speicherst du 982743986 Karten-Objekte
    dann speicherst du 7986 Geschosse, die gerade durch die Gegend fliegen

    und jetzt willst du laden.... ähm wieviel Objekte muss ich auslesen, bis die Karten-Objekte anfangen?

    Deshalb:

    du speicherst die Daten der Spieler
    du speicherst ein Array von Einheiten-Objekten
    du speicherst alle Kartenobjekte auf einmal (wieder Array, oder was auch immer es halt ist)
    usw.

    Du musst immer wissen, was du gerade ausliest. Das Auslesen bis nichts mehr kommt ist doch für die Katz, weil du gar nicht weisst, was jetzt was ist. Du musst genau wissen "jetzt kommt das und das". Ist doch supereinfach, du kannst ganze Datenstrukturen serialisieren.



  • Hi Optimizer,
    habe dich missverstanden, sorry.
    Darüber mache ich mir keiner Sorgen. Zwar habe ich Klasse A, B, C und D, aber die Struktur ist vollkommen gleich!
    Alle Methoden heissen gleich und alle Variablen heissen gleich, darum müsste es überhaupt keine Probleme beim Casten geben! Tut es aber komischerweise!

    Liebe Grüße
    Real



  • Was hast du für Probleme beim casten?? Davon war noch überhaupt nicht die Rede. Du wolltest wissen, wie du rausfindest, wie lange du auslesen kannst bis nicht mehr kommt und ich habe dir gesagt, es muss von Anfang an klar sein, was du ausliest, wieviel und in welcher Reihenfolge.



  • Alle Methoden heissen gleich und alle Variablen heissen gleich, darum müsste es überhaupt keine Probleme beim Casten geben! Tut es aber komischerweise!

    das ist auch klar, wenn diese Klassen in verschiedenen Vererbungshirarchieen untergebracht sind.
    Wenn alle Klassen dieselben Methoden haben, dann sollte man sowas am besten mithilfe Von Interfaces lösen. Dann kannst du das Objekt, das du aus der Datei liest, ganz einfach in eine Objekt des Typs des Interfaces casten und alles läuft.



  • Optimizer schrieb:

    Was hast du für Probleme beim casten?? Davon war noch überhaupt nicht die Rede. Du wolltest wissen, wie du rausfindest, wie lange du auslesen kannst bis nicht mehr kommt und ich habe dir gesagt, es muss von Anfang an klar sein, was du ausliest, wieviel und in welcher Reihenfolge.

    Gut, das ist ja auch klar.
    Wenn ich z.B. drei oder vier Einträge reinschreibe und zwei auslesen will, dann kommt beim Auslesen eine IOException.
    Das ist mein größtes Prob!
    Wieso kommt das?!

    Liebe Grüße
    Real+



  • Es gibt einen Thread, der genau das behandelt. Damals hatte ich auch gesagt, dass es schwierig wäre Objekte auszulesen (dazu noch verschiedene) ohne zu wissen wieviel davon vorhanden sind. Leider ist die Suchfunktion derzeit abgeschaltet aber der Thread ist da.



  • Hi,
    kannst du mir wenigstens den Namen des Threads sagen?

    Liebe Grüße
    Real


Anmelden zum Antworten