Speichern Spiel Datei

Arbeite ich auf einem primitiven RPG, und diese Klasse (angeblich) alle notwendigen Daten enthält:

public class CPU implements Serializable{

private Map<String, Location> locations;
private Map<String, Location> places;
private Map<String, NPC> npcs;
private Game game;
private Player player;
private NPC currentNPC;

public CPU(){

}

(Ich habe nicht die Methoden, aber ich denke, dass diese unerheblich sind, gerade jetzt...)

Der Klasse "Spiel" enthält auch die Spieler und die CPU, wie Variablen, aber der Konstruktor ist nicht derjenige, um tatsächlich zu erstellen (diese werden erzeugt in der main () - Methode, dann Hinzugefügt, um die Klassen). Diese Methode ist die einzige, der soll zum speichern der CPU-Klasse zu einer Datei, so kann ich alle Daten Lesen aus es später:

public void SaveGame(String s){
    String sav = s;
    sav.concat(".dat");
    try {
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(sav));
        oos.writeObject(cpu);
        oos.close();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
}

- Und dies ist die Methode, um aus der Datei laden:

public void Load(String s){
    if(s.contains(".dat")){
        try {
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(s));
            cpu = (CPU)ois.readObject();
            ois.close();
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

Meine Frage ist grundsätzlich: soll das funktionieren? Bin ich in der Lage, einfach serialisieren der CPU-Klasse und speichern Sie es in eine Datei, dann Lesen Sie es wieder und werden in der Lage, um wieder alle Daten von ihm (ich.e der Spieler Daten)?

Wenn ich mich richtig erinnere, in Java "=" bedeutet nicht, dass das Objekt auf der rechten Seite kopiert werden, so mein anderes problem ist: wenn die Methode "Load" abgeschlossen ist, wird die "cpu" (die variable "Spiel"-Klasse) enthält die CPU, die ich aus der Datei geladenen, und ich in der Lage sein, Daten zu Lesen?

Wenn andere Klassen serialisierbar sind, sollte es funktionieren.e.ich. Spiel -, Spieler-und NPC aber warum nicht einfach ausprobieren?
Was passiert, wenn du es ausprobiert?
Bezüglich deinem letzten Absatz: Warum sollte die CPU geladen Instanz magisch Weg? In Java, Sie sind im Grunde die Zuordnung von Referenzen und wie lange Sie haben, eine Referenz auf ein Objekt, wird es nicht von der garbage Collection freigegeben.
Habe nicht versucht es noch, weil ich habe daran gearbeitet, seit fast 10 Stunden, und ich bin etwas anderes tun für eine Weile... 😉

InformationsquelleAutor user1856971 | 2012-11-27

Schreibe einen Kommentar