• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[Java] Property File speichern

No3x

Mitglied
Hi! Ich hab leider ein Problem beim Abspeichern meiner properties:
Laden funktioniert direkt innerhalb der jar aber wie speicher ich sie nun wieder ab?

Code:
Properties prop = null;
        
        try {
            InputStream is = UploaderApp.class.getResourceAsStream("/uploader/resources/UploaderSettingsBox.properties");
            if(is != null) {
                prop = new Properties();
                prop.load(is);
                prop.list(System.out);
                prop.setProperty("bla", "blub");
                FileOutputStream Fos = new FileOutputStream(is);
                prop.store(Fos, null);        
            } else {
                System.out.println("ERROR: Could not find properties file.");
            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
Ich dachte mir so:
Code:
FileOutputStream Fos = new FileOutputStream(is);
prop.store(Fos, null);
Aber dann bekomm ich einen Fehler:
No suitable constructor found for FileOutputStream(java.io.InputStream)
Hat jemand eine Idee?
 
Werbung:
Ansich ist das schon richtig so, aber FileOutputStream hat keinen Konstruktor der einen InputStream übergeben bekommt. du kannst ihm z.B. ein File Objekt übergeben oder einen String aber keinen InputStream..

File myFile = new File("propert.prop");
prop.store(new FileOutputStream(myFile), "Dateikommentar");
 
Code:
String myPath  = UploaderApp.class.getResource("/uploader/resources/UploaderSettingsBox.properties");
File myFile = new File(myPath);
funktioniert nicht, da getResource eine URL zurückgibt, ich aber einen String brauche.
Vielleicht ist der Ansatz mit
UploaderApp.class.getResource("/uploader/resources/UploaderSettingsBox.properties");
falsch?
 
Werbung:
häng hinten noch getFile dran, dann sollte es funktionieren damit hast du einen passenden File Konstruktor. Bzw. gibts auch getPath dann bekommst du deinen String aber getFile() sollte leichter sein
 
Code:
String myPath = UploaderApp.class.getResource("/uploader/resources/UploaderSettingsBox.properties").getFile();
            File myFile = new File(myPath);
            
            if(myFile != null) {
                                prop = new Properties();
                prop.load(is);
                prop.list(System.out);
                prop.setProperty("bla", "blub");
               
                prop.store(new FileOutputStream(myFile), null);        
            } else {
                System.out.println("ERROR: Could not find properties file.");
            }
C:\Dokumente%20und%20Einstellungen\Administrator\Eigene%20Dateien\NetBeansProjects\Uploader\build\classes\uploader\resources\UploaderSettingsBox.properties (Das System kann den angegebenen Pfad nicht finden)

Wenn ich den Pfad direkt mit dem Explorer öffne finde ich die Datei auch nicht, nur wenn ich die %20 durch spaces ersetze. Stört ihn das möglicherweise?
Das kann doch nicht so schwer sein?! :mrgreen:
 
Werbung:
Es ist eine von Netbeans angelegte Datei, die die Text-Attribute der Elemente in einer GUI speichert. Ich möchte diese bloß manipulieren und wieder abspeichern.
Sie müsste im Buildpath sein, denn auslesen geht ja.
 
Zurück
Oben