Ich habe eine Liste von Schlüssel / Wert-Paaren von Konfigurationswerten, die ich als Java-Eigenschaftendateien speichern und später laden und durchlaufen möchte.
Fragen:
- Muss ich die Datei im selben Paket speichern wie die Klasse, die sie laden wird, oder gibt es einen bestimmten Speicherort, an dem sie abgelegt werden soll?
- Muss die Datei mit einer bestimmten Erweiterung enden oder ist sie in
.txt
Ordnung? - Wie kann ich die Datei in den Code laden?
- Und wie kann ich die darin enthaltenen Werte durchlaufen?
java
properties
Klicken Sie auf Upvote
quelle
quelle
null
. Siehe Javadocproperties.load(PropertiesReader.class.getResourceAsStream("/properties.properties"));
dem heißt, imgetResourceAsStream
Vergleich zuFileInputStream
? Vor-und Nachteile?Sie können die Datei an einem beliebigen Ort speichern. Wenn Sie es in Ihrer JAR-Datei behalten möchten, möchten Sie es verwenden
Class.getResourceAsStream()
oderClassLoader.getResourceAsStream()
darauf zugreifen. Wenn es sich im Dateisystem befindet, ist es etwas einfacher.Jede Erweiterung ist in Ordnung, obwohl .properties meiner Erfahrung nach häufiger vorkommt
Laden Sie die Datei mit
Properties.load
, vorbei in einemInputStream
oderStreamReader
wenn Sie mit Java 6 (Wenn Sie werden mit Hilfe von Java 6, würde ich wahrscheinlich verwenden UTF-8 und eineReader
anstelle der Standard - ISO-8859-1 - Codierung für einen Stream. )Durchlaufen Sie es, wie Sie es durch eine Normalität
Hashtable
(die sich darausProperties
ergibt) durchlaufen würden , zkeySet()
. Alternativ können Sie die von zurückgegebene Aufzählung verwendenpropertyNames()
.quelle
Wenn Sie die Eigenschaftendatei in dasselbe Paket wie die Klasse Foo einfügen, können Sie sie problemlos mit laden
Da Eigenschaften Hashtable erweitern, können Sie die Werte auf dieselbe Weise wie in einer Hashtable durchlaufen.
Wenn Sie die Erweiterung * .properties verwenden, erhalten Sie Editorunterstützung, z. B. verfügt Eclipse über einen Editor für Eigenschaftendateien.
quelle
Es gibt viele Möglichkeiten,
properties
Dateien zu erstellen und zu lesen :.properties
Erweiterung empfehlen, aber Sie können Ihre eigene wählen.java.util
Paket =>Properties
,ListResourceBundle
,ResourceBundle
Klassen.Properties
oderjava.lang.System
class.ResourceBundle
Klasse:Properties
Klasse:quelle
.properties
Erweiterung? Was ist falsch an der Erweiterung '.txt'? Bitte helfen Sie mir.Dadurch wird die Eigenschaftendatei geladen:
Ich verwende die .properties-Datei in einem Verzeichnis, in dem ich alle Konfigurationsdateien habe. Ich füge sie nicht mit der Klasse zusammen, die darauf zugreift, aber hier gibt es keine Einschränkungen.
Für den Namen ... Ich benutze .properties aus Gründen der Ausführlichkeit. Ich denke nicht, dass Sie es .properties nennen sollten, wenn Sie nicht wollen.
quelle
Beispiel:
quelle
Eigenschaften sind Vermächtnis geworden. Die Voreinstellungsklasse wird den Eigenschaften vorgezogen.
Im Gegensatz zu Eigenschaften, bei denen es sich um Zeichenfolgen-basierte Schlüssel-Wert-Paare handelt, verfügt die
Preferences
Klasse über verschiedene Methoden zum Abrufen und Einfügen primitiver Daten in den Einstellungsdatenspeicher. Wir können nur die folgenden Datentypen verwenden:Zum Laden der Eigenschaftendatei können Sie entweder einen absoluten Pfad angeben oder verwenden,
getResourceAsStream()
wenn die Eigenschaftendatei in Ihrem Klassenpfad vorhanden ist.XML-Datei:
Schauen Sie sich diesen Artikel über Interna des Preferials Store an
quelle
In Ordnung:
quelle
2. no extension is necessary
Können Sie mir bitte eine Referenz für diese Aussage geben? Ich habe Verwirrung darüber.Standardmäßig öffnet Java es im Arbeitsverzeichnis Ihrer Anwendung (dieses Verhalten hängt tatsächlich vom verwendeten Betriebssystem ab). Gehen Sie wie folgt vor, um eine Datei zu laden:
Daher kann jede Dateierweiterung für die Eigenschaftendatei verwendet werden. Darüber hinaus kann die Datei auch überall gespeichert werden, solange Sie a verwenden können
FileInputStream
.Wenn Sie ein modernes Framework verwenden, bietet das Framework möglicherweise zusätzliche Möglichkeiten zum Öffnen einer Eigenschaftendatei. Beispielsweise bietet Spring eine
ClassPathResource
Option zum Laden einer Eigenschaftendatei unter Verwendung eines Paketnamens aus einer JAR-Datei.Beim Durchlaufen der Eigenschaften werden die Eigenschaften nach dem Laden im
java.util.Properties
Objekt gespeichert , das diepropertyNames()
Methode anbietet .quelle
Lesen einer Eigenschaftendatei und Laden ihres Inhalts in
Properties
Das Folgende ist der effiziente Weg, um über a zu iterieren
Properties
quelle
In Java 8 erhalten Sie alle Ihre Eigenschaften
quelle
1) Es ist gut, Ihre Eigenschaftendatei im Klassenpfad zu haben, aber Sie können sie an einer beliebigen Stelle im Projekt platzieren.
Im Folgenden wird beschrieben, wie Sie die Eigenschaftendatei aus dem Klassenpfad laden und alle Eigenschaften lesen.
2) Eigenschaftendateien haben die Erweiterung .properties
quelle
Hier ist eine andere Möglichkeit, die Eigenschaften zu durchlaufen:
quelle
Ich habe im letzten Jahr über diesen Immobilienrahmen geschrieben. Es bietet mehrere Möglichkeiten, Eigenschaften zu laden und sie auch stark zu tippen.
Schauen Sie sich http://sourceforge.net/projects/jhpropertiestyp/ an.
JHPropertiesTyped gibt dem Entwickler stark typisierte Eigenschaften. Einfache Integration in bestehende Projekte. Wird von einer großen Serie für Eigenschaftstypen behandelt. Ermöglicht die einzeilige Initialisierung von Eigenschaften über Eigenschafts-E / A-Implementierungen. Ermöglicht dem Entwickler die Erstellung eigener Eigenschaftstypen und Eigenschafts-IOs. Web-Demo ist ebenfalls verfügbar, Screenshots oben gezeigt. Verfügen Sie auch über eine Standardimplementierung für ein Web-Front-End zum Verwalten von Eigenschaften, wenn Sie diese verwenden möchten.
Eine vollständige Dokumentation, ein Tutorial, Javadoc, FAQ usw. finden Sie auf der Projektwebseite.
quelle
Hier bereit statische Klasse
Hier Beispiel:
quelle
Sie können die Eigenschaftendatei wie folgt laden:
Und dann können Sie mit einem Lambda-Ausdruck wie folgt über die Karte iterieren:
quelle
Meiner Meinung nach sind andere Möglichkeiten veraltet, wenn wir es wie folgt ganz einfach machen können:
es ist so einfach, aber ich denke das ist der beste Weg !! Genießen
quelle