Hallo zusammen!
Ich habe ein kleines BlackJack-Programm geschrieben und möchte am Ende einer Runde den Spielstand abspeichern können, indem ich die Spieler serialisiere.
Die Klassen liegen alle im package src/blackjack, als Speicherdatei gebe ich spielstand.dat an, das er unter src ablegt.
Leider bringt er mir beim deserialisieren immer eine EOFException.
Kann das daran liegen, dass er die Datei mit den serialisierten Objekten nicht findet?
_public static Vector deserialisieren(String filename){
Vector oldPlayer = new Vector();
int anzahlPlayer = 0;
if (new File(filename).exists()){
try
{
FileInputStream file = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file);
try
{
anzahlPlayer = in.readInt();
System.out.println(„in.readInt():“ + anzahlPlayer);
for (int i = 0; i_
Hi,
Leider bringt er mir beim deserialisieren immer eine
EOFException.
Kann das daran liegen, dass er die Datei mit den
serialisierten Objekten nicht findet?
Nein, sonst würde er eine FileNotFoundEx. werfen.
EOFEx. steht für end-of-file, d.h. er hat unerwartet das Dateiende erreicht.
Ob das ein Fehler ist kannst Du hoffentlich feststellen.
Je nach Dateiformat weiß man erst, wenn man auf dieses EOF stößt, daß das Dateiende erreicht ist.
Es kann sich hier also um die berühmte, seltene Ausnahme handeln, bei der es sinnvoll ist den Programmfluß mittels einer Exception zu steuern.
Hallo Philipp,
kurze Frage vorweg: Wie serialisierst Du?
Du musst erst die Anzahl der Spieler und danach alle BlackJackPlayer serialisieren.
Eine andere Möglichkeite wäre den Vector zu serialisieren und zu deserialisieren.
Gruß,
Frank
Hallo zusammen!
Ich habe ein kleines BlackJack-Programm geschrieben und möchte
am Ende einer Runde den Spielstand abspeichern können, indem
ich die Spieler serialisiere.
Die Klassen liegen alle im package src/blackjack, als
Speicherdatei gebe ich spielstand.dat an, das er unter src
ablegt.
Leider bringt er mir beim deserialisieren immer eine
EOFException.
Kann das daran liegen, dass er die Datei mit den
serialisierten Objekten nicht findet?
Hallo Philipp,
kurze Frage vorweg: Wie serialisierst Du?
Ich serialisiere folgendermaßen:
_public static void serialisieren(Vector player, String filename){
try{
FileOutputStream ofile = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(ofile);
for (int i = 0; i
Du musst erst die Anzahl der Spieler und danach alle
BlackJackPlayer serialisieren.
Eine andere Möglichkeite wäre den Vector zu serialisieren und
zu deserialisieren.
Gruß,
Frank
Hallo zusammen!
Ich habe ein kleines BlackJack-Programm geschrieben und möchte
am Ende einer Runde den Spielstand abspeichern können, indem
ich die Spieler serialisiere.
Die Klassen liegen alle im package src/blackjack, als
Speicherdatei gebe ich spielstand.dat an, das er unter src
ablegt.
Leider bringt er mir beim deserialisieren immer eine
EOFException.
Kann das daran liegen, dass er die Datei mit den
serialisierten Objekten nicht findet?_
Hallo Philipp,
wenn ich mir den Code unten anschaue, dann haben wir das Problem doch schon gefunden.
Im Lese-Code benutzt Du
anzahlPlayer = in.readInt();
System.out.println("in.readInt():" + anzahlPlayer);
for (int i = 0; i
Im unten vorliegenden Code fehlt aber ein out.writeInt(player.size()).
Einfach vor die Schleife hängen und dann sollte es funktionieren.
Gruß,
Frank
> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>