suchen
HeimBackend-EntwicklungXML/RSS-TutorialJava&Xml-Tutorial (10) XML als Eigenschaftendatei verwenden

Wir speichern normalerweise die Konfigurationsparameter von Java-Anwendungen in Eigenschaftendateien. Die Eigenschaftendateien von Java-Anwendungen können eine normale Datei sein, die auf Schlüssel-Wert-Paaren mit Eigenschaften als Erweiterung basiert, oder es kann eine XML-Datei sein

In diesem Fall stellen wir vor, wie Eigenschaftendateien in diesen beiden Formaten über Java-Programme ausgegeben werden und wie diese beiden Eigenschaftendateien aus dem Klassenpfad geladen und verwendet werden.

Das Folgende ist der Programmcode für den Fall:
PropertyFilesUtil.java

package com.journaldev.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
public class PropertyFilesUtil {

    public static void main(String[] args) throws IOException {
        String propertyFileName = "DB.properties";
        String xmlFileName = "DB.xml";
        writePropertyFile(propertyFileName, xmlFileName);
        readPropertyFile(propertyFileName, xmlFileName);
        readAllKeys(propertyFileName, xmlFileName);
        readPropertyFileFromClasspath(propertyFileName);
    }    /**
     * read property file from classpath
     * @param propertyFileName
     * @throws IOException
     */
    private static void readPropertyFileFromClasspath(String propertyFileName) throws IOException {
        Properties prop = new Properties();
        prop.load(PropertyFilesUtil.class.getClassLoader().getResourceAsStream(propertyFileName));
        System.out.println(propertyFileName +" loaded from Classpath::db.host = "+prop.getProperty("db.host"));
        System.out.println(propertyFileName +" loaded from Classpath::db.user = "+prop.getProperty("db.user"));
        System.out.println(propertyFileName +" loaded from Classpath::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(propertyFileName +" loaded from Classpath::XYZ = "+prop.getProperty("XYZ"));

    }    /**
     * read all the keys from the given property files
     * @param propertyFileName
     * @param xmlFileName
     * @throws IOException 
     */
    private static void readAllKeys(String propertyFileName, String xmlFileName) throws IOException {
        System.out.println("Start of readAllKeys");
        Properties prop = new Properties();
        FileReader reader = new FileReader(propertyFileName);
        prop.load(reader);
        Set<Object> keys= prop.keySet();        for(Object obj : keys){
            System.out.println(propertyFileName + ":: Key="+obj.toString()+"::value="+prop.getProperty(obj.toString()));
        }        //loading xml file now, first clear existing properties
        prop.clear();
        InputStream is = new FileInputStream(xmlFileName);
        prop.loadFromXML(is);
        keys= prop.keySet();        for(Object obj : keys){
            System.out.println(xmlFileName + ":: Key="+obj.toString()+"::value="+prop.getProperty(obj.toString()));
        }        //Now free all the resources
        is.close();
        reader.close();
        System.out.println("End of readAllKeys");
    }    /**
     * This method reads property files from file system
     * @param propertyFileName
     * @param xmlFileName
     * @throws IOException 
     * @throws FileNotFoundException 
     */
    private static void readPropertyFile(String propertyFileName, String xmlFileName) throws FileNotFoundException, IOException {
        System.out.println("Start of readPropertyFile");
        Properties prop = new Properties();
        FileReader reader = new FileReader(propertyFileName);
        prop.load(reader);
        System.out.println(propertyFileName +"::db.host = "+prop.getProperty("db.host"));
        System.out.println(propertyFileName +"::db.user = "+prop.getProperty("db.user"));
        System.out.println(propertyFileName +"::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(propertyFileName +"::XYZ = "+prop.getProperty("XYZ"));        
        //loading xml file now, first clear existing properties
        prop.clear();
        InputStream is = new FileInputStream(xmlFileName);
        prop.loadFromXML(is);
        System.out.println(xmlFileName +"::db.host = "+prop.getProperty("db.host"));
        System.out.println(xmlFileName +"::db.user = "+prop.getProperty("db.user"));
        System.out.println(xmlFileName +"::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(xmlFileName +"::XYZ = "+prop.getProperty("XYZ"));        
        //Now free all the resources
        is.close();
        reader.close();
        System.out.println("End of readPropertyFile");
    }    /**
     * This method writes Property files into file system in property file
     * and xml format
     * @param fileName
     * @throws IOException
     */
    private static void writePropertyFile(String propertyFileName, String xmlFileName) throws IOException {
        System.out.println("Start of writePropertyFile");
        Properties prop = new Properties();
        prop.setProperty("db.host", "localhost");
        prop.setProperty("db.user", "user");
        prop.setProperty("db.pwd", "password");
        prop.store(new FileWriter(propertyFileName), "DB Config file");
        System.out.println(propertyFileName + " written successfully");
        prop.storeToXML(new FileOutputStream(xmlFileName), "DB Config XML file");
        System.out.println(xmlFileName + " written successfully");
        System.out.println("End of writePropertyFile");
    }

}
Wenn dieser Code ausgeführt wird, generiert die Methode writePropertyFile Eigenschaftsdateien in den beiden oben genannten Formaten und speichert die Dateien im Projekt im Stammverzeichnis.

Die beiden von der Methode writePropertyFile generierten Eigenschaftendateiinhalte:
DB.properties

#DB Config file#Fri Nov 16 11:16:37 PST 2012db.user=user
db.host=localhost
db.pwd=password
DB.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE properties SYSTEM 
"http://java.sun.com/dtd/properties.dtd"><properties><comment>DB Config XML file</comment>
<entry key="db.user">user</entry><entry key="db.host">localhost</entry><entry key="db.pwd">password</entry>
</properties>
Es ist zu beachten, dass wir die verwenden Kommentarelement

Der zweite Parameter in diesem Code ist der Kommentarinhalt. Wenn null übergeben wird, enthält die generierte XML-Attributdatei kein Kommentarelement. prop.storeToXML(new FileOutputStream(xmlFileName), "DB Config XML file");Die Konsolenausgabe lautet wie folgt:

Start of writePropertyFile
DB.properties written successfully
DB.xml written successfully
End of writePropertyFile
Start of readPropertyFileDB.properties::db.host = localhostDB.properties::db.user = 
userDB.properties::db.pwd = passwordDB.properties::XYZ = nullDB.xml::db.host = 
localhostDB.xml::db.user = userDB.xml::db.pwd = passwordDB.xml::XYZ = null
End of readPropertyFile
Start of readAllKeysDB.properties:: Key=db.user::value=userDB.properties:: 
Key=db.host::value=localhostDB.properties:: Key=db.pwd::value=passwordDB.xml:: Key=db.user::value=userDB.xml:: 
Key=db.host::value=localhostDB.xml:: Key=db.pwd::value=password
End of readAllKeys
Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at com.journaldev.util.PropertyFilesUtil.readPropertyFileFromClasspath(PropertyFilesUtil.java:31)
    at com.journaldev.util.PropertyFilesUtil.main(PropertyFilesUtil.java:21)
Hier wird eine Nullzeigerausnahme gemeldet. Der Grund dafür ist, dass die generierte Datei im Stammverzeichnis des Projekts gespeichert und aus dem Klassenpfad gelesen wird . Kopieren Sie die beiden oben generierten Eigenschaftendateien nach src und führen Sie das Programm erneut aus.

Wir speichern die Konfigurationsparameter von Java-Anwendungen normalerweise in Eigenschaftendateien. Die Eigenschaftendateien von Java-Anwendungen können eine normale Datei sein, die auf Schlüssel-Wert-Paaren mit Eigenschaften als Erweiterung basiert, oder es kann eine XML-Datei sein. .

In diesem Fall stellen wir vor, wie man Eigenschaftsdateien in diesen beiden Formaten über Java-Programme ausgibt und wie man diese beiden Eigenschaftsdateien aus dem Klassenpfad lädt und verwendet.
Das Folgende ist der Programmcode für den Fall:
PropertyFilesUtil.java

package com.journaldev.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.Set;
public class PropertyFilesUtil {

    public static void main(String[] args) throws IOException {
        String propertyFileName = "DB.properties";
        String xmlFileName = "DB.xml";
        writePropertyFile(propertyFileName, xmlFileName);
        readPropertyFile(propertyFileName, xmlFileName);
        readAllKeys(propertyFileName, xmlFileName);
        readPropertyFileFromClasspath(propertyFileName);
    }    /**
     * read property file from classpath
     * @param propertyFileName
     * @throws IOException
     */
    private static void readPropertyFileFromClasspath(String propertyFileName) throws IOException {
        Properties prop = new Properties();
        prop.load(PropertyFilesUtil.class.getClassLoader().getResourceAsStream(propertyFileName));
        System.out.println(propertyFileName +" loaded from Classpath::db.host = "+prop.getProperty("db.host"));
        System.out.println(propertyFileName +" loaded from Classpath::db.user = "+prop.getProperty("db.user"));
        System.out.println(propertyFileName +" loaded from Classpath::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(propertyFileName +" loaded from Classpath::XYZ = "+prop.getProperty("XYZ"));

    }    /**
     * read all the keys from the given property files
     * @param propertyFileName
     * @param xmlFileName
     * @throws IOException 
     */
    private static void readAllKeys(String propertyFileName, String xmlFileName) throws IOException {
        System.out.println("Start of readAllKeys");
        Properties prop = new Properties();
        FileReader reader = new FileReader(propertyFileName);
        prop.load(reader);
        Set<Object> keys= prop.keySet();        for(Object obj : keys){
            System.out.println(propertyFileName + ":: Key="+obj.toString()+"::value="+prop.getProperty(obj.toString()));
        }        //loading xml file now, first clear existing properties
        prop.clear();
        InputStream is = new FileInputStream(xmlFileName);
        prop.loadFromXML(is);
        keys= prop.keySet();        for(Object obj : keys){
            System.out.println(xmlFileName + ":: Key="+obj.toString()+"::value="+prop.getProperty(obj.toString()));
        }        //Now free all the resources
        is.close();
        reader.close();
        System.out.println("End of readAllKeys");
    }    /**
     * This method reads property files from file system
     * @param propertyFileName
     * @param xmlFileName
     * @throws IOException 
     * @throws FileNotFoundException 
     */
    private static void readPropertyFile(String propertyFileName, String xmlFileName) throws FileNotFoundException, IOException {
        System.out.println("Start of readPropertyFile");
        Properties prop = new Properties();
        FileReader reader = new FileReader(propertyFileName);
        prop.load(reader);
        System.out.println(propertyFileName +"::db.host = "+prop.getProperty("db.host"));
        System.out.println(propertyFileName +"::db.user = "+prop.getProperty("db.user"));
        System.out.println(propertyFileName +"::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(propertyFileName +"::XYZ = "+prop.getProperty("XYZ"));        
        //loading xml file now, first clear existing properties
        prop.clear();
        InputStream is = new FileInputStream(xmlFileName);
        prop.loadFromXML(is);
        System.out.println(xmlFileName +"::db.host = "+prop.getProperty("db.host"));
        System.out.println(xmlFileName +"::db.user = "+prop.getProperty("db.user"));
        System.out.println(xmlFileName +"::db.pwd = "+prop.getProperty("db.pwd"));
        System.out.println(xmlFileName +"::XYZ = "+prop.getProperty("XYZ"));        
        //Now free all the resources
        is.close();
        reader.close();
        System.out.println("End of readPropertyFile");
    }    /**
     * This method writes Property files into file system in property file
     * and xml format
     * @param fileName
     * @throws IOException
     */
    private static void writePropertyFile(String propertyFileName, String xmlFileName) throws IOException {
        System.out.println("Start of writePropertyFile");
        Properties prop = new Properties();
        prop.setProperty("db.host", "localhost");
        prop.setProperty("db.user", "user");
        prop.setProperty("db.pwd", "password");
        prop.store(new FileWriter(propertyFileName), "DB Config file");
        System.out.println(propertyFileName + " written successfully");
        prop.storeToXML(new FileOutputStream(xmlFileName), "DB Config XML file");
        System.out.println(xmlFileName + " written successfully");
        System.out.println("End of writePropertyFile");
    }

}
Wenn dieser Code ausgeführt wird, generiert die Methode writePropertyFile Eigenschaftsdateien in den beiden oben genannten Formaten und speichert die Dateien im Projekt im Stammverzeichnis.

Die beiden von der Methode writePropertyFile generierten Eigenschaftendateiinhalte:
DB.properties

#DB Config file#Fri Nov 16 11:16:37 PST 2012db.user=user
db.host=localhost
db.pwd=password
DB.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE properties SYSTEM " 
<properties><comment>DB Config XML file</comment><entry key="db.user">user</entry><entry key="db.host">localhost</entry>
<entry key="db.pwd">password</entry></properties>
Es ist zu beachten, dass wir die verwenden Kommentarelement

Der zweite Parameter in diesem Code ist der Kommentarinhalt. Wenn null übergeben wird, enthält die generierte XML-Attributdatei kein Kommentarelement. prop.storeToXML(new FileOutputStream(xmlFileName), "DB Config XML file");Der Inhalt der Konsolenausgabe lautet wie folgt:

Start of writePropertyFile
DB.properties written successfully
DB.xml written successfully
End of writePropertyFile
Start of readPropertyFileDB.properties::db.host = localhostDB.properties::db.user = userDB.properties::db.pwd = passwordDB.properties::XYZ = 
nullDB.xml::db.host = localhostDB.xml::db.user = userDB.xml::db.pwd = passwordDB.xml::XYZ = null
End of readPropertyFile
Start of readAllKeysDB.properties:: Key=db.user::value=userDB.properties:: Key=db.host::value=localhostDB.properties:: Key=db.pwd::value=passwordDB.xml:: 
Key=db.user::value=userDB.xml:: Key=db.host::value=localhostDB.xml:: Key=db.pwd::value=password
End of readAllKeys
Exception in thread "main" java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at com.journaldev.util.PropertyFilesUtil.readPropertyFileFromClasspath(PropertyFilesUtil.java:31)
    at com.journaldev.util.PropertyFilesUtil.main(PropertyFilesUtil.java:21)
Das Obige ist der Inhalt von Java&Xml Tutorial (10) XML als Eigenschaftsdatei. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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
RSS & XML: Verständnis des dynamischen Duos von WebinhaltenRSS & XML: Verständnis des dynamischen Duos von WebinhaltenApr 19, 2025 am 12:03 AM

RSS und XML sind Tools für die Verwaltung von Webinhalten. RSS wird verwendet, um Inhalte zu veröffentlichen und zu abonnieren, und XML wird verwendet, um Daten zu speichern und zu übertragen. Sie arbeiten mit Content Publishing, Abonnements und Update Push. Beispiele für die Nutzung sind RSS Publishing -Blog -Beiträge und XML -Speicherbuchinformationen.

RSS -Dokumente: Die Grundlage der Web -SyndizierungRSS -Dokumente: Die Grundlage der Web -SyndizierungApr 18, 2025 am 12:04 AM

RSS-Dokumente sind XML-basierte strukturierte Dateien, die zum Veröffentlichen und Abonnieren von häufig aktualisierten Inhalten verwendet werden. Zu den Hauptfunktionen gehören: 1) automatisierte Inhaltsaktualisierungen, 2) Inhaltsaggregation und 3) Verbesserung der Browsereffizienz. Durch RSSFeed können Benutzer die neuesten Informationen aus verschiedenen Quellen rechtzeitig abonnieren und abrufen.

Dekodierung von RSS: Die XML -Struktur von InhaltsfeedsDekodierung von RSS: Die XML -Struktur von InhaltsfeedsApr 17, 2025 am 12:09 AM

Die XML -Struktur von RSS umfasst: 1. XML -Deklaration und RSS -Version, 2. Kanal (Kanal), 3. Artikel. Diese Teile bilden die Grundlage von RSS -Dateien, sodass Benutzer Inhaltsinformationen durch Parsen von XML -Daten erhalten und verarbeiten können.

Wie man XML-basierte RSS-Feeds analysiert und nutztWie man XML-basierte RSS-Feeds analysiert und nutztApr 16, 2025 am 12:05 AM

RSSFeedSusexmltosyndicateContent; ParsingtheminvolvesLoadingxml, NavigatingitsStructure, andextractingData.ApplicationsincludeBuildingNewsaggregatorsandTrackingPodcastepisodes.

RSS -Dokumente: Wie sie Ihren Lieblingsinhalt liefernRSS -Dokumente: Wie sie Ihren Lieblingsinhalt liefernApr 15, 2025 am 12:01 AM

RSS -Dokumente arbeiten, indem sie Inhaltsaktualisierungen über XML -Dateien veröffentlichen, und Benutzer abonnieren und erhalten Benachrichtigungen über RSS -Leser. 1. Inhaltsverlag erstellt und aktualisiert RSS -Dokumente. 2. Der RSS -Leser zugreift regelmäßig XML -Dateien auf und analysiert. 3. Benutzer durchsuchen und lesen aktualisierte Inhalte. Beispiel für die Nutzung: Abonnieren Sie den RSS -Feed von TechCrunch und kopieren Sie einfach den Link zum RSS -Leser.

Bauen von Futtermitteln mit XML: Ein praktischer Anleitung zu RSSBauen von Futtermitteln mit XML: Ein praktischer Anleitung zu RSSApr 14, 2025 am 12:17 AM

Die Schritte zum Erstellen eines RSSFeeds mit XML sind wie folgt: 1. Erstellen Sie das Stammelement und setzen Sie die Version; 2. Fügen Sie das Kanalelement und seine grundlegenden Informationen hinzu; 3. Fügen Sie das Eintragselement hinzu, einschließlich des Titels, des Links und der Beschreibung; 4. Konvertieren Sie die XML -Struktur in eine Zeichenfolge und geben Sie sie aus. Mit diesen Schritten können Sie eine gültige RSSFeed von Grund auf neu erstellen und seine Funktionalität verbessern, indem Sie zusätzliche Elemente wie Erscheinungsdatum und Autoreninformationen hinzufügen.

Erstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialErstellen von RSS-Dokumenten: Ein Schritt-für-Schritt-TutorialApr 13, 2025 am 12:10 AM

Die Schritte zum Erstellen eines RSS -Dokuments sind wie folgt: 1. Schreiben Sie im XML -Format mit dem Stammelement, einschließlich der Elemente. 2. Hinzufügen usw. Elemente, um Kanalinformationen zu beschreiben. 3. Fügen Sie Elemente hinzu, die jeweils einen Inhaltseintrag darstellen, einschließlich ,,,,,,,,,. 4. Fügen Sie optional Elemente hinzu, um den Inhalt zu bereichern. 5. Stellen Sie sicher, dass das XML -Format korrekt ist, verwenden Sie Online -Tools, um die Leistung zu optimieren und den Inhalt auf dem neuesten Stand zu halten.

Die Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenDie Rolle von XML in RSS: Die Grundlage von syndizierten InhaltenApr 12, 2025 am 12:17 AM

Die Kernrolle von XML in RSS besteht darin, ein standardisiertes und flexibles Datenformat bereitzustellen. 1. Die Struktur- und Markup -Sprachmerkmale von XML machen es für den Datenaustausch und Speicher für den Daten. 2. RSS verwendet XML, um ein standardisiertes Format zu erstellen, um die Inhaltsfreigabe zu erleichtern. 3. Die Anwendung von XML in RSS enthält Elemente, die Futterinhalte wie Titel und Veröffentlichungsdatum definieren. 4. Vorteile umfassen Standardisierung und Skalierbarkeit sowie Herausforderungen umfassen dokumentausführende und strenge Syntaxanforderungen. 5. Zu den Best Practices gehört die Validierung der XML -Gültigkeit, die einfache Haltung, die Verwendung von CDATA und die regelmäßige Aktualisierung.

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ße Werkzeuge

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)