suchen
HeimJavajavaLernprogrammWie verwende ich die Properties-Klasse in Java?

¿Cómo usar la clase Properties en Java?

Einführung

Wenn wir an einer Java-Anwendung arbeiten, ist es üblich, dass wir mit einigen Konfigurationen arbeiten müssen, zum Beispiel unter anderem mit der URL einer Datenbank, dem Port eines Servers. Anstatt diese Einstellungen direkt im Code fest zu codieren, möchten wir sie von einer Stelle außerhalb des Codes abrufen, beispielsweise aus einer Eigenschaftendatei. Oder Sie können Konfigurationen sogar zur Laufzeit speichern, um sie später zu lesen.

In jedem dieser Fälle können wir für bestimmte Szenarien eigene Lösungen entwickeln, zum Beispiel eine Textdatei erstellen und in der ersten Zeile die URL der Datenbank speichern, in der zweiten Zeile den Server-Port usw. . Dies kann jedoch mühsam und fehleranfällig sein, sodass eine robustere und skalierbarere Lösung erforderlich ist. Für diese Art von Fällen stellt uns Java eine sehr einfache und effiziente Lösung zur Verfügung, die Properties-Klasse.

Was ist die Properties-Klasse?

Properties ist eine Klasse im Paket java.util, die es uns ermöglicht, Konfigurationen sowohl vorübergehend im Speicher als auch dauerhaft in einer Eigenschaftendatei zu speichern, damit wir sie später lesen und in unserer Anwendung verwenden können. Durch das Erstellen einer Instanz der Properties-Klasse erhalten Sie ein Objekt, das sich wie ein Wörterbuch verhält, in dem jede Konfiguration als Schlüssel-Wert-Paar gespeichert wird.

Verwenden der Properties-Klasse

Zu Beginn muss eine Instanz der Properties-Klasse erstellt werden.

Properties props = new Properties();

Durch die Erbung von der HashTable-Klasse (die wiederum von Dictionary erbt) können wir innerhalb der Properties-Klasse erkennen, dass sie über Methoden vom Typ Object verfügt, obwohl in Wirklichkeit erwartet wird, dass die Werte Zeichenfolgen oder Strings sind. und not ist es nicht notwendig, jedes Mal, wenn Sie mit einem Wert arbeiten, einen String umzuwandeln. Obwohl es in der Instanz gängige Kartenmethoden gibt, ist es auf diese Weise in den meisten Fällen nicht erforderlich, diese zu verwenden. Anstelle von get(Object key) können Sie beispielsweise getProperty(String key) verwenden.

Eigenschaften definieren

Um eine Eigenschaft zu definieren, wird die Methode setProperty(String key, String value) verwendet. Wie der Name schon sagt, empfängt diese Methode zwei Parameter, den Schlüssel (wie Sie die Eigenschaft nennen möchten) und den Wert (den Eigenschaftswert). ), wenn man bedenkt, dass erwartet wird, dass beide Parameter immer vom Typ String sind.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");

Holen Sie sich eine Immobilie

Um eine Eigenschaft zu erhalten, können Sie die Methode getProperty(String key) verwenden, die als Parameter den Schlüssel der Eigenschaft empfängt, die Sie erhalten möchten. Wenn die Eigenschaft nicht vorhanden ist, wird null zurückgegeben.

Properties props = new Properties();

Um den Erhalt von Null zu vermeiden, falls eine Eigenschaft nicht vorhanden ist, können Sie die Methode getProperty(String key, String defaultValue) verwenden, die einen Standardwert als zweiten Parameter erhält.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");

Über Eigenschaften iterieren

Da es sich um ein Objekt vom Typ „Map“ handelt (obwohl die Verwendung von HashTable-Methoden nicht empfohlen wird), verfügt es über die Methode „entrySet()“, aber wie Sie sehen können, ist es vom Typ „Object“, eine Alternative zum Durchlaufen aller Eigenschaften um die Methode stringPropertyNames() zu verwenden, die eine Reihe von Zeichenfolgen mit allen Eigenschaftsschlüsseln zurückgibt (die zurückgegebenen Werte sind in keiner bestimmten Reihenfolge).

var API_URL = props.getProperty("API_URL");
System.out.println(API_URL);

// Output
null

Eine schnellere Möglichkeit, alle Eigenschaften anzuzeigen, ist die Verwendung der list(PrintStream out)-Methode, die alle Eigenschaften in den als Parameter übergebenen Ausgabestream druckt, zum Beispiel System.out.

var API_URL = props.getProperty("API_URL", "http://api.example.com");
System.out.println(API_URL);

// Output
http://api.example.com

Speichern Sie Eigenschaften in einer Datei

Properties stellt die Methoden „store()“ und „storeToXML()“ bereit, sodass Eigenschaften in einem properties-Format (Schlüssel=Wert) und in einem XML-Format (dies kann sein) gespeichert werden können nützlich, wenn die Eigenschaften in verschiedenen Umgebungen verwendet werden). Verwenden Sie nicht die Methode save(), da sie veraltet ist und ihre Verwendung nicht empfohlen wird, da sie im Fehlerfall keine Ausnahmen auslöst.

Bevor wir die Eigenschaften in einer Datei speichern, können wir Folgendes tun, um über die Konsole zu überprüfen, was tatsächlich gespeichert wird, indem wir die Methode „store()“ und „System.out“ verwenden. Es ist wichtig, die ausgelöste Ausnahme irgendwie zu kontrollieren.

for (String prop : props.stringPropertyNames()) {
    System.out.println(prop + " = " + props.getProperty(prop));
}

// Output
DB_PORT = 3306
DB_PASS = p4ssw0rd
DB_USER = root
DB_HOST = localhost

Wenn Sie das Ergebnis analysieren, können Sie sehen, dass in der ersten Zeile der Kommentar, der als zweites Argument übergeben wird, gespeichert wird (es spielt keine Rolle, ob es sich um eine leere Zeichenfolge handelt, wenn sie null ist, wird sie nicht gedruckt). In der zweiten Zeile werden Datum und Uhrzeit der Speicherung der Eigenschaften gespeichert, und ab der dritten Zeile werden die Eigenschaften im Format Schlüssel=Wert.

gespeichert

Wenn die Methode storeToXML() verwendet wird, wird eine Datei mit folgendem Inhalt erhalten:

props.list(System.out);

// Output
-- listing properties --
DB_PORT=3306
DB_PASS=p4ssw0rd
DB_USER=root
DB_HOST=localhost

Um die Eigenschaften in einer Datei namens db.properties zu speichern, können Sie Folgendes tun:

props.store(System.out, "Database Configuration");

// Output
#Database Configuration
#Thu Oct 10 11:06:04 CST 2024
DB_HOST=localhost
DB_PASS=p4ssw0rd
DB_PORT=3306
DB_USER=root

Nach der Ausführung und wenn keine Ausnahme ausgelöst wird, werden Sie sehen, dass in dem Verzeichnis, in dem das Programm ausgeführt wurde, eine Datei mit dem Namen db.properties mit folgendem Inhalt erstellt wurde:

props.storeToXML(System.out, "Database Configuration");

// Output
<?xml version="1.0" encoding="UTF-8"?>

<properties>
<comment>Database Configuration</comment>
<entry key="DB_PORT">3306</entry>
<entry key="DB_PASS">p4ssw0rd</entry>
<entry key="DB_USER">root</entry>
<entry key="DB_HOST">localhost</entry>
</properties>

Um die Eigenschaften im XML-Format zu speichern, ändern Sie einfach die Methode „store()“ in „storeToXML()“.

Properties props = new Properties();

Eigenschaften aus einer Datei laden

Angenommen, eine Eigenschaft wurde in der Datei db.properties oder db.properties.xml geändert oder eine neue hinzugefügt, um die Eigenschaften aus einer der beiden Dateien zu laden, entweder in Eigenschaften oder XML können jeweils die Methoden „load()“ und „loadFromXML()“ verwendet werden. Es ist wichtig, die Ausnahme, die ausgelöst wird, wenn die Datei nicht existiert oder nicht gelesen werden kann, irgendwie zu kontrollieren.

Properties props = new Properties();
props.setProperty("DB_HOST", "localhost");
props.setProperty("DB_PORT", "3306");
props.setProperty("DB_USER", "root");
props.setProperty("DB_PASS", "p4ssw0rd");
var API_URL = props.getProperty("API_URL");
System.out.println(API_URL);

// Output
null

Sobald die Eigenschaften geladen sind, können sie in der Konsole angezeigt werden, um zu überprüfen, ob sie korrekt geladen wurden.

var API_URL = props.getProperty("API_URL", "http://api.example.com");
System.out.println(API_URL);

// Output
http://api.example.com

Abschluss

Wie wir gesehen haben, ermöglicht uns die Properties-Klasse, auf effiziente und einfache Weise mit Eigenschafts- oder Konfigurationsdateien zu arbeiten, sowohl um Eigenschaften zu speichern als auch zu lesen, was interessant zu wissen und in unseren Java-Anwendungen zu verwenden ist.

Das obige ist der detaillierte Inhalt vonWie verwende ich die Properties-Klasse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion