Aktualisieren des Eigenschaftswerts in der Eigenschaftendatei, ohne andere Werte zu löschen [duplicate]

Lesezeit: 3 Minuten

Elangovans Benutzeravatar
Elangovan

Inhalt von First.properties:

name=elango
country=india
phone=12345

Ich will Veränderung country aus india Zu america. Das ist mein Code:

import java.io.*;
public class UpdateProperty 
{
    public static void main(String args[]) throws Exception 
    {   
        FileOutputStream out = new FileOutputStream("First.properties");
        FileInputStream in = new FileInputStream("First.properties");
        Properties props = new Properties();
        props.load(in);
        in.close();
        props.setProperty("country", "america");
        props.store(out, null);
        out.close();
    } 
}

Ausgabeinhalt von First.properties:

country=america

Die anderen Eigenschaften werden gelöscht. Ich möchte einen bestimmten Eigenschaftswert aktualisieren, ohne die anderen Eigenschaften zu löschen.

  • Ähnlich: stackoverflow.com/questions/7461901/… und stackoverflow.com/questions/565932/…

    – Wadzim

    30. Juni 2017 um 9:44 Uhr


Benutzeravatar von Vasyl Keretsman
Vasyl Kerezman

Öffnen Sie den Ausgabestream und speichern Sie die Eigenschaften, nachdem Sie den Eingabestream geschlossen haben.

FileInputStream in = new FileInputStream("First.properties");
Properties props = new Properties();
props.load(in);
in.close();

FileOutputStream out = new FileOutputStream("First.properties");
props.setProperty("country", "america");
props.store(out, null);
out.close();

  • Danke Vasyl Keretsman, ich ändere den Code. Ist es richtig? Eigenschaften Requisiten = neue Eigenschaften (); props.load (in); props.setProperty(“Land”, “Amerika”); props.store (aus, null); out.close(); in.close(); aber die Antwort ist die gleiche. Ich habe nicht die erwartete Antwort bekommen

    – Elangovanisch

    11. März 2013 um 11:48 Uhr


  • Nicht richtig. Ich habe den Code zu meiner Antwort hinzugefügt

    – Vasyl Keretsman

    11. März 2013 um 11:55 Uhr

  • Danke Vasyl Keretsman. Es funktioniert ..

    – Elangovanisch

    11. März 2013 um 12:07 Uhr

  • @VasylKeretsman Es werden alle vorhandenen Kommentare in der Datei entfernt

    – Paraneetharan Saravanaperumal

    2. Juli 2015 um 9:17 Uhr


  • Wie wurde dies zur akzeptierten Antwort? Es entfernt alle zuvor festgelegten Eigenschaften.

    – WowBow

    30. September 2016 um 0:26 Uhr

Benutzeravatar von AnirbanDebnath
AnirbanDebnath

Sie können verwenden Apache Commons-Konfiguration Bibliothek. Das Beste daran ist, dass es nicht einmal die Eigenschaftendatei durcheinander bringt und sie intakt hält (sogar Kommentare).

Javadoc

PropertiesConfiguration conf = new PropertiesConfiguration("propFile.properties");
conf.setProperty("key", "value");
conf.save();    

  • Dies ist eine viel bessere Antwort als die akzeptierte

    – Joe Hackerberg

    16. Februar 2017 um 14:19 Uhr

  • @GOXR3PLUS Tut mir leid, ich kann es gerade nicht testen, aber ich dachte, es sollte funktionieren, weil es eine Anmerkung in der Kopfzeile der Website gibt, wo Sie sehen können: “Zuletzt veröffentlicht: 08. Februar 2017 | Version: 2.1.1” Es ist ziemlich verwirrend, aber Sie können immer noch ältere Versionen verwenden. Leider kann ich dir da nicht weiter helfen 🙁

    – Joe Hackerberg

    12. Mai 2017 um 10:42 Uhr

  • @JoséMª Ich hatte die Version 1.1 verwendet. Auch die Version 2.1 hat die save() Methode darin. commons.apache.org/proper/commons-configuration/apidocs/org/…

    – AnirbanDebnath

    22. Mai 2017 um 7:55 Uhr


  • Hallo @J.Doem: Du kannst den Älteren verwenden 1.10 version die einen String args-Konstruktor hat, um den Dateinamen direkt zu übergeben. Andernfalls können Sie für V2 die verwenden PropertyConfiguration Klasse loadIncludeFile(String fileName) Methode zum Übergeben des Dateinamens.

    – AnirbanDebnath

    20. August 2017 um 8:22 Uhr


  • Diese Lösung hat meine 2 Probleme gelöst. 1. Speichern der Datei ohne Verlust anderer Daten und auch 2. Schlüsselpositionen werden nicht vertauscht (Bei Verwendung anderer Lösungen, z. B. mit FileInput- und Output-Streams, werden Positionen von Schlüsseln auf zufällige Positionen vertauscht und auch Kommentare werden entfernt).

    – Lakshmipathi G

    22. März 2022 um 13:10 Uhr


Properties prop = new Properties();
prop.load(...); // FileInputStream 
prop.setProperty("key", "value");
prop.store(...); // FileOutputStream 

1444300cookie-checkAktualisieren des Eigenschaftswerts in der Eigenschaftendatei, ohne andere Werte zu löschen [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy