Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt?

Drachenbauer

Aktives Mitglied
Hallo

Mein Spiel schreibt eine ini-Datei, wenn ich es beende:
Java:
            public void windowClosing(WindowEvent event)
            {
                try
                {
                    File newFile = new File("D:\\Mods\\AngryBirdsSokoban-Data.ini");
                    newFile.createNewFile();
                    Wini ini = new Wini(new File("D:\\Mods\\AngryBirdsSokoban-Data.ini"));
                   
                    int i = 0;
                   
                    for (String level: board.levels.levels)
                    {
                        ini.put("Levels", "Level "  + i + " solved", board.solved[i]);
                        i++;
                    }
                   
                    ini.put("Levels", "Actual", board.level_number);
                    ini.put("Design", "Walls", board.wall_design_dialog.selected);
                    ini.store();
                }
                catch(Exception e)
                {
                    System.err.println(e.getMessage());
                }
               
                dispose();
                System.exit(0);
            }
Darin werden der Fortschritt (gelöste Levels) und ein paar Einstellungen gespeichert.

Beim erneuten Starten liest es diese ini aus:
Java:
        try
        {
            Wini ini = new Wini(new File("D:\\Mods\\AngryBirdsSokoban-Data.ini"));
           
            selected_wall = ini.get("Design", "Walls");
            loadLevel(ini.get("Levels", "Actual", int.class));
           
            i = 0;
           
            for (String level: levels.levels)
            {
                solved[i] = ini.get("Levels", "Level "  + i + " solved", int.class);
                i++;
            }
        }
        catch(Exception e)
        {
            System.err.println(e.getMessage());
        }

Wie muss ich die Zeilen: "new File("D:\\Mods\\AngryBirdsSokoban-Data.ini")" ändern, damit es die Ini in das "resources"-Package meiner Projekt-Struktur schreibt.?

Für die Verwendung von dort gespeicherten Grafiken funktioniert ein Pfad-String, der mit dem "main"-Package meines Projektes beginnt.

So etwas würde ich auch gerne für die ini-Datei nutzen.

Kann ich dort die gleiche Art von Pfad-String nutzen, wie für die Grafiken, nur mit dem Namen der ini-Datei am Ende?
 

mrBrown

Super-Moderator
Mitarbeiter
Das funktioniert nicht, wenn dein Spiel als Jar gepackt ist, aus der jar kannst du nur lesen, nicht aber in diese schreiben.
 

Drachenbauer

Aktives Mitglied
Wenn es fertig ist, soll es einen Ordner geben, der eine .exe und einen Resource-Ordner enthält, in dem wiederum die ini und die Grafiken zu finden sind.

Da soll es doch die ini stets dort finden können, egal, wo im Datei-System des Computers sich der äußere Ordner befindet.
 

Drachenbauer

Aktives Mitglied
Ich habe den Eindruck, bei dem jetzigen Dateipfad-String kann es nur dann eine ini-Datei schreiben und nutzen, wenn es ein Laufwerk D gibt und darin einen Ordner "Mods".

Also muss ich das doch irgendwie anpassen können, dass es keinen kompletten Pfad mehr dafür braucht, der bei einem Laufwerk beginnt, sondern die ini stets in den Ordner schreibt, in dem es sich auch selbst befindet, egal, wie der heißt, oder wo im Dateisystem er sich befindet.
 

mrBrown

Super-Moderator
Mitarbeiter
Nimm ein Verzeichnis, welches für sowas gedacht ist, zB Appdata (heißt doch so unter Windows?).
Das Verzeichnis, in welchem das Program liegt, nimmt man idealerweise als schreibgeschützt an.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
0 Konfiguration lesen / schreiben - Bibliothek dafür? Allgemeine Java-Themen 3
B Ausgabe auf stdout "löschen" und dafür neue Ausgab Allgemeine Java-Themen 10
B Was würdet ihr dafür berechnen? Allgemeine Java-Themen 7
A Auftragsprojekt und was dafür verlangen? Allgemeine Java-Themen 11
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
C Eclipse einstellen, dass eine bestimmte JDK benutzt werden soll Allgemeine Java-Themen 3
G Methoden Aus einem Event, wo ich weiß, dass es ausgeführt werden wird, eine Get-Methode basteln Allgemeine Java-Themen 8
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
R Wie schaffe ich es, dass java zB 100 zählt ohne ständig "else if" hinschreiben zu müssen? Allgemeine Java-Themen 7
N Input/Output Verhindern, dass log-Einträge auf Console erscheinen Allgemeine Java-Themen 2
S ThreadPoolExecutor: wie stelle ich fest dass meine Threads im Pool mit ihrer Arbeit fertig sind? Allgemeine Java-Themen 3
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
K Applet dass auf mehrere Bibliotheken zugreift Allgemeine Java-Themen 13
B Passwort verwenden ohne dass es im Quelltext steht Allgemeine Java-Themen 24
M Java-Anwendungen so anbieten, dass sie jeder starten kann ;) Allgemeine Java-Themen 19
M Gibt es ein Foren-System, dass in Java programmiert ist? Allgemeine Java-Themen 51

Ähnliche Java Themen

Neue Themen


Oben