Lesen / Schreiben in Eigenschaftendateien in der JAR-Datei

Nach 4 Jahren schreibe ich wieder Java. Bitte verzeihen Sie alle "Rookie" -Fehler.

Ich brauche eine Eigenschaftendatei, in der ich einige einfache Daten für meine Anwendung speichern kann. Die App-Daten selbst werden hier nicht gespeichert, aber ich speichere Informationen wie den Dateipfad zum zuletzt verwendeten Datenspeicher, andere Einstellungen usw.

Ich konnte eine Verbindung zu der Eigenschaftendatei herstellen, die im selben Paket wie die Klassendatei vorhanden ist, die versucht, eine Verbindung herzustellen, und ich kann die Datei lesen, aber ich habe Probleme, in die Datei zurückzuschreiben. Ich bin mir ziemlich sicher, dass mein Code funktioniert (zumindest löst er keine Fehler aus), aber die Änderung wird nicht in der Datei selbst wiedergegeben, nachdem die App in Netbeans ausgeführt wurde.

In der obigen Abbildung sehen Sie die betreffende Datei mainProperties.properties und die Klasse, die versucht, sie aufzurufen (prefManagement.java). In diesem Sinne ist hier mein Code zum Laden der Datei:

Properties mainFile = new Properties();
try {

    mainFile.load(prefManagement.class.getClass().getResourceAsStream("/numberAdditionUI/mainProperties.properties"));


} catch (IOException a) {

    System.out.println("Couldn't find/load file!");

}

Dies funktioniert und ich kann den einen vorhandenen Schlüssel (defaultXMLPath) überprüfen und bestätigen.

Mein Code zum Hinzufügen zu dieser Datei lautet:

String confirmKey = "defaultXMLPath2";

String propKey = mainFile.getProperty(confirmKey);

if (propKey == null) {

    // Key is not present so enter the key into the properties file
    mainFile.setProperty(confirmKey, "testtest");


    try{

        FileOutputStream fos = new FileOutputStream("mainProperties.properties");
        mainFile.store(fos, "testtest3");
        fos.flush();

    }catch(FileNotFoundException e ){
        System.out.println("Couldn't find/load file3!");
    }catch(IOException b){
        System.out.println("Couldn't find/load file4!");
    }



} else {

    // Throw error saying key already exists
    System.out.println("Key " + confirmKey + " already exists.");

}

Wie ich oben erwähnte, läuft alles ohne Fehler und ich kann mit dem Versuch, den vorhandenen Schlüssel hinzuzufügen, herumspielen und es löst den erwarteten Fehler aus. Beim Versuch, ein neues Schlüssel / Wert-Paar hinzuzufügen, wird es jedoch nicht in der Eigenschaftendatei afterwords angezeigt. Warum?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage