Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen?

Maik.Neumann

Aktives Mitglied
Hallo !

Kann mir vielelicht jemans von euch sagen, wie ich aus einer Property Datei sämtliche Schlüssel und ihre dazugehörigen Werte herauslesen kann. Ich würde diese gerne in Form eine List vom Typ String zurückgeben oder besser noch in Form einer HashMap.

Ein erster Ansatz von mir sah so aus, funktioniert allerdings wegen des castens nicht:

Java:
List<String> includedProperties = new ArrayList<String>();
		
		if(properties.elements().hasMoreElements()){
			includedProperties.add(properties.elements().toString());
			properties.elements().nextElement();
		}

Danke und Gruß
 
Zuletzt bearbeitet:

HarleyDavidson

Bekanntes Mitglied
Ich mache das immer mit dieser kleinen aber feinen Methode ganz am Anfang:

Java:
    private static boolean initProperties()
    {
        try
        {
            //APP_CONFIG ist ein bereits deklarierter String mit dem Pfad zur Datei
            FileReader reader = new FileReader( APP_CONFIG );
            properties = new Properties();
            properties.load( reader );
            reader.close();
            return true;
        }
        catch ( Exception e )
        {
            System.err.println( "Laden der Konfig fehlgeschlagen" );
            System.exit( 1 );
        }
        return false;
    }

Auf die Properties kannst du dann folgendermaßen zugreifen:

Java:
String value = properties.getProperty( "key" );
 
Zuletzt bearbeitet:

JeromeC

Aktives Mitglied
Unter der Annahme, dass du das Java-Properties-Dateiformat meinst, sähe ein Aufruf wie folgt aus:
Java:
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.util.Properties;

Properties properties = new Properties();
BufferedInputStream stream = new BufferedInputStream(new FileInputStream("beispiel.properties"));
properties.load(stream);
stream.close();
String sprache = properties.getProperty("lang");

Wenn du die gesamte Datei in einer Map abbilden möchtest, könnte dies wie folgt aussehen:
Java:
Hashtable<String, String> propMap = new Hashtable<String, String>();
Properties properties = new Properties();
BufferedInputStream stream = new BufferedInputStream(new FileInputStream("beispiel.properties"));
properties.load(stream);
Enumeration e = properties.propertyNames();


while (e.hasMoreElements()) {
      String key = (String) e.nextElement();
      String value = (String) props.getProperty(key));
      propMap.put(key, value);
    }
stream.close();
Ich hab jetzt gerade keine Möglichkeit deinen oder meinen Code zu testen, du solltest das also hier eher als Denkanstoß verstehen. Wenn du die Datei eingelesen hast, möchtest du auf jedenfall den Schlüssel (Key) und den dazu gehörenden Wert beziehungsweiße die Property in ein Key-Value-Objekt ablegen. Such dafür mal nach geeigneten Möglichkeiten und die Unterschiede zwischen TreeMap, HashMap, Hashtable, Listen, etc.
 
Zuletzt bearbeitet:

fischefr

Aktives Mitglied
Ich würde ja die Aktion als sinnfrei bezeichnen, weil Properties sowieso das Interface Map implementiert.
Wenn es sein muss, kannst du das Properties-Objekt gleich dem Konstruktor der HashMap übergeben, dann sparst du dir den Zirkus mit der Schleife und dem Rumkopieren der Referenzen.
 

Ähnliche Java Themen

Neue Themen


Oben