2017-02-28 4 views
0

Ich verwende die Klasse ConfigFactory, um die Konfiguration meiner Anwendung zu laden, aber ich möchte wissen, wie ich eine Zeile aus einer anderen Datei laden und sie dem Config-Objekt hinzufügen kann. Die Datei enthält nur 1 Zeile mit dem Wert, den ich möchte, und ich möchte diesen Wert mit der config mit einem neuen Schlüssel oder besser zu einem vorhandenen hinzufügen, so dass ich einen Standardwert haben kann.Zeile aus Datei lesen und in aktuelle Konfiguration laden

Ist es möglich, einen benutzerdefinierten Schlüssel/Wert hinzufügen, nachdem der Config geladen wird ?, wie:

config.add("key", "value")

Antwort

2

Sie können dies tun, indem #withFallback mit:

// Assuming this is your first config file 
val default = ConfigFactory.load("application.conf") 

// Now we add the second one 
val updated = default.withFallback(ConfigFactory.load("foo.conf")) 

Oder, vorausgesetzt, Sie haben Ihre line an anderer Stelle als Wert gelesen, verwenden Sie die gleiche Methode, aber analysieren Sie die Konfiguration direkt aus der Zeichenfolge ConfigFactory#parseString:

val default = ConfigFactory.load("application.conf") 
val updated = default.withFallback(ConfigFactory.parseString(s"key = $value")) 
+0

Aber ich möchte nicht laden eine andere Konfigurationsdatei, ich möchte nur die Zeichenfolge in der Datei zu einem Wert auf der tatsächlichen Konfiguration hinzufügen. Mit Ihrer Methode lädt es eine Konfigurationsdatei, oder? In meiner Datei gibt es keine Konfigurationsstruktur, nur einen Wert. Falls ich das mit einem einfachen Wert innerhalb der Datei tun kann, wie kann ich dann auf diesen Wert zugreifen? – Raxkin

+0

Wie kann ich auf den Wert aus dem ParseString (Zeile) zugreifen? Ich denke, ich habe es nicht gut erklärt. In der Datei gibt es nur einen Wert, es gibt keinen Schlüsselwert nur einen Wert. Ej: '1234' und ich möchte ein Attribut wie' 'password": 1234' zur Konfiguration hinzufügen – Raxkin

Verwandte Themen