Wie lese ich eine Eigenschaftendatei in Java? [Duplikat]

7

Ich verwende Servlets, in denen ich die Datenbankverbindungsdetails hartcodiere, also muss ich den Code neu kompilieren. Stattdessen möchte ich stattdessen eine Datei .properties verwenden (die ich später ändern kann) und diese als Quelle für meine Datenbankverbindung verwenden.

Das Problem ist, ich weiß nicht, wie ich die Eigenschaftendatei lesen soll. Könnte mir bitte jemand helfen, die Datei zu lesen?

    
dean 06.06.2011, 06:31
quelle

13 Antworten

7
%Vor%

Beispiel kommt von hier Properties (Java)

Die Methoden von Properties können Ausnahmen auslösen. - Wenn der Dateipfad nicht gültig ist ( FileNotFoundException ). Versuchen Sie, ein File -Objekt zu erstellen und prüfen Sie, ob das File existiert. - ...

    
Markus Lausberg 06.06.2011 06:39
quelle
4

Sie können sich die Konfiguration von Apache Commons ansehen. Mit ihr können Sie die Eigenschaftendatei wie folgt lesen:

%Vor%

Diese Informationen zum Speicherort der Datei können ebenfalls wichtig sein:

  

Wenn Sie kein absolut angeben   Pfad wird die Datei durchsucht   automatisch im folgenden   Orte:

     
  • im aktuellen Verzeichnis
  •   
  • im Home-Verzeichnis des Benutzers
  •   
  • im Klassenpfad
  •   

Wenn Sie also die Eigenschaftendatei in einem Servlet lesen, sollten Sie die Eigenschaftendatei in einen Klassenpfad einfügen (z. B. in WEB-INF/classes ).

Sie finden weitere Beispiele auf ihrer Website.

    
Piotr 06.06.2011 06:48
quelle
3

Sie können java.util.Properties

verwenden     
trutheality 06.06.2011 06:33
quelle
2

Das größte Problem beim Lesen einer Eigenschaftendatei in einer Webanwendung ist, dass Sie den tatsächlichen Pfad der Datei nicht kennen. Also müssen wir den relativen Pfad verwenden und dafür müssen wir verschiedene Funktionen und Klassen wie getresourceAsStream (), InputStream, FileinputStream etc. Verwenden.

Und die Methode getReourceAsStream verhält sich in statischen und nicht statischen Methoden anders. Sie können dies auf folgende Weise tun:

  1. Nicht statisch

    InputStream input = getClass().getClassLoader().getResourceAsStream("config.properties");

  2. Statisch

    InputStream input = ReadPropertyFile.class.getClassLoader().getResourceAsStream("config.properties");

Für eine vollständige Referenz können Sie diesen Links folgen.

Ссылка

Ссылка

    
Hitesh Garg 30.08.2014 09:00
quelle
1

Die Klasse Properties hat eine bequeme Methode load . Das ist der einfachste Weg, eine Java-Eigenschaftendatei zu lesen.

    
Andreas_D 06.06.2011 06:34
quelle
1
%Vor%     
Marcin Michalski 06.06.2011 06:50
quelle
1

Der folgende Code fügt einen Listener hinzu, der nach Dateien sucht, die mit der Systemeigenschaft dbprops konfiguriert sind. Für jedes gegebene Intervall wird es aussehen, wenn die Datei geändert wird, wenn sie geändert wird, wird sie die Eigenschaften aus der Datei laden.     Paket com.servlets;

%Vor%     
Ramesh PVK 06.06.2011 06:52
quelle
1

Unter Programm lesen Sie die Eigenschaftendatei eine Anzeige mit Schlüsselwertpaar

%Vor%     
loknath 06.06.2014 06:37
quelle
1
%Vor%

Angenommen, die Datei mybundle.properties befindet sich im Klassenpfad

    
Kalpesh Soni 25.06.2014 21:47
quelle
1

Wenn Ihre Anwendung klein genug ist und nur eine Handvoll Eigenschaften aus nur ein oder zwei Property-Dateien stammt, würde ich vorschlagen, die JDK-eigene Properties-Klasse zu verwenden, die die Eigenschaften aus einer Datei lädt und genauso verwendet wie Sie Verwenden Sie eine Hashtabelle. Die Eigenschaftenklasse selbst erbt von Hashtable. Aber, Ihre Anwendung ist sehr groß mit einer beträchtlichen Anzahl von Eigenschaften aus verschiedenen Quellen wie Property-Dateien, XML-Dateien, Systemeigenschaften, dann würde ich vorschlagen, Apache Commons-Konfiguration zu verwenden. Es bietet eine einheitliche Ansicht von Eigenschaften aus verschiedenen Konfigurationsquellen und ermöglicht Ihnen, einen Überschreibungs- und Präferenzmechanismus für allgemeine Eigenschaften zu definieren, die in verschiedenen Quellen vorkommen. In diesem Artikel Ссылка finden Sie ein kurzes Tutorial zur Verwendung der Commons-Konfiguration.

    
Drona 22.11.2014 03:26
quelle
1

Das könnte funktionieren ::

%Vor%     
Aamir 22.11.2014 08:40
quelle
0

Lesen Sie dies . Normalerweise wird die Eigenschaftendatei im Klassenpfad gespeichert, damit diese Methode sie lesen kann.

    
Gary Buyn 06.06.2011 06:35
quelle
0

Das ist eine gute Idee, um die Datenbankwerte aus der Eigenschaftendatei

zu lesen

Sie können eine Klasse Eigenschaften aus dem Util-Paket verwenden. Es ist wichtig zu beachten, dass der Stream nach dem Lesen der Datei oder dem Schreiben der Datei auf die Festplatte geschlossen wird. Sonst verursacht es Probleme. Hier ist ein Beispiel für Ihre Referenz:

%Vor%

Ausgabe

%Vor%     
Harish 19.12.2013 05:37
quelle

Tags und Links