Wie bekomme ich alle Eigenschaftendateien in einem Paket und aktualisiere die Schlüsselwerte mit Java?

Ich habe viel versucht, konnte aber keine Lösung finden.

|
|--src/main/resouces
       |
       |-updatePropertiesFile.java
       |-xyz_en_US.properties
       |-xyz_en_AF.properties
       |-xyz_en_AE.properties

Dies ist meine Projektstruktur.

Ich habe eine updatePropertiesFile-Klasse, um einen Schlüssel für alle Eigenschaftendateien zu aktualisieren. Ich habe rund 200 Eigenschaften-Datei.

Was ich also brauche, ist, dass ich eine Methode schreiben muss, um einen bestimmten Schlüssel in all diesen Eigenschaftendateien zu aktualisieren. Manueller Wechsel ist das praktisch nicht. Ich muss eine Anwendung schreiben, die diese Funktion ausführt.

Ich habe versucht, einen Resoucebundle-Mechanismus zu verwenden. Mit dem Ressourcenpaket können wir jedoch nur eine Eigenschaftendatei abrufen. Ich habe es versuchtResourceBundle.getBundle(String,Locale) undResourceBundle.getBundle(String) Methoden.

Ich benötige eine Iteration durch diese Eigenschaftendatei und eine Aktualisierung für den Schlüssel.

Mein erstes Problem ist behoben.

Ich tat dies als:

File[] files = new File("src/main/resources").listFiles();
    for (File file : files) {
    if (file.getName().endsWith("properties"))  {
     //my logic
    }

Aber als ich das tat, wurden meine Kommentare in der Eigenschaftendatei entfernt und die Reihenfolge geändert. Ich möchte auch die Reihenfolge des Schlüssels und der Kommentare in der Eigenschaftendatei beibehalten.

Um die Reihenfolge, die ich versucht habe, beizubehalten, verwenden Sie:

public static class LinkedProperties extends Properties {
        private final HashSet<Object> keys = new LinkedHashSet<Object>();

        public LinkedProperties() {
        }

        public Iterable<Object> orderedKeys() {
            return Collections.list(keys());
        }

        public Enumeration<Object> keys() {
            return Collections.<Object>enumeration(keys);
        }

        public Object put(Object key, Object value) {
            keys.add(key);
            return super.put(key, value);
        }
    }

Aber dies verursachte einige Änderungen im Schlüssel-Wert-Paar in der Eigenschaftendatei. Einige Sonderzeichen wurden addiert.

Bitte hilf mir, die Kommentare zu pflegen und zu bestellen

Antworten auf die Frage(4)

Ihre Antwort auf die Frage