2016-04-27 11 views
-1

Ich weiß nicht, gibt es eine Möglichkeit in Java zu speichern & Laden Sie das ganze Spiel/App mit nur einem Skript (Java-Datei, Klasse ...)?Java. Gibt es eine Möglichkeit, ganzes Spiel/App mit nur einer Java-Datei (Klasse ...) zu speichern/zu laden?

Zum Beispiel, wenn ich viele Int und String in vielen Java-Dateien erstellen, gibt es eine Möglichkeit, sie alle mit nur einem Skript zu speichern. Und wenn ich das Spiel/die App abstelle (System.exit(1);) und wenn ich zurück zum Spiel gehe, wird es sich selbst laden (ich werde meine Werte nicht verlieren.).

Gibt es eine Möglichkeit, das zu tun?

+0

Ja! Fügen Sie Ihren 'save' und' load' Code in eine Datei ein. Viel Glück! –

+0

Von welcher Art von Spiel/App sprichst du? Sie können alle diese in einer Datenbank speichern, wenn Sie möchten. – aksappy

Antwort

1

Sie sollten Ihre Spieldaten nicht in einer Java-Datei speichern. Das macht keinen Sinn. Java-Dateien sollen Java-Quellcode speichern, nicht Ihre Spieldaten.

Sie sollten Ihre Spieldaten in andere Dateien schreiben und sie lesen, wenn das Programm startet.

Sie verwenden grundsätzlich ObjectOutputStream und ObjectInputStream, um dies zu tun.

Kurz bevor der Benutzer das Programm schließt, erstellen Sie eine neue ObjectOutputStream:

FileOutputStream fos = new FileOutputStream("The/Path/That/You/Want/The/Data/File/To/be"); 
ObjectOutputStream stream = new ObjectOutputStream(fos); 

Dann Sie Ihre Spieldaten alle (Ihre ints und Streicher) stellen in einem einzigen POJO, die Serializable implementiert. Schreiben Sie anschließend dieses POJO in diese Datei.

Dies ist die POJO Klasse:

public class GameData implements Serializable { 
    private int int1, int2, int3; 
    private String s1, s2, s3; 

    // getters for the fields 

    public GameData(int int1, int int2, int int3, String s1, String s2, String s3) { 
     this.int1 = int1; 
     this.int2 = int2; 
     this.int3 = int3; 
     this.s1 = s1; 
     this.s2 = s2; 
     this.s2 = s3; 
    } 
} 

Und Sie speichern die Daten wie folgt aus:

GameData data = new GameData(someInt1, someInt2, someInt3, someStr1, someStr2, someStr3); 
stream.writeObject(data); 

Wenn Sie die Daten wieder lesen möchten, erstellen Sie einfach eine FileInputStream und ein ObjectInputStream und Besetzung das gelesene Objekt zu GameData und Sie können alle Ihre Ints und Strings zurück bekommen!

+0

Tnx. für deine Antwort – Salmeh