1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Properties lesen

Dieses Thema im Forum "Java" wurde erstellt von Choe, 26. August 2008.

  1. Choe

    Choe Grünschnabel

    Hi Leute,

    hab ein Programm, dass aus einer .properties file lesen soll. Funktioniert im Eclipse einwandfrei, jedoch wenn ich das Programm in eine .jar Datei verwandle, reagiert es auf nichts (was sehr wahrscheinlich darauf zurückzuführen ist, dass die Pfadangabe für die .properties Datei nicht stimmt). Als Pfadangabe verwende ich nur
    FileInputStream in = new FileInputStream("constraint_checker.properties");
    wobei ich mir dachte, dass das programm dann einfach im ordner der .jar Datei nach den Properties sucht. Leider tut es dies anscheinend nicht. Wie kann ich also meinem Programm sagen, es soll einfach im selbigen Ordner nach constraint_checker.properties suchen?

    Liebe Grüße
  2. Xandro

    Xandro - Mistkerl -

    Moin,

    wenn Deine properties-Datei in einem Jar liegt, musst Du die Datei folgendermaßen aufrufen:
    Code (Java):
    1. FileInputStream in = new FileInputStream(getClass().getResourceAsStream("constraint_checker.properties"));
    Hm ... da gibt's wohl mehrere Möglichkeiten merke ich grad:
    Code (Java):
    1. FileInputStream in = new FileInputStream(DeineKlasse.class.getResourceAsStream("constraint_checker.properties"));
    Gruß,
    Xan
    Zuletzt bearbeitet: 26. August 2008
  3. Choe

    Choe Grünschnabel

    hi, danke für deine hilfe, jedoch kann ich keinen FileInputStream mit dem parameter InputStream erstellen sagt mir mein eclipse :S

    wenn ich den InputStream jedoch zu einem string mache mit .toSring() gibt mir der compiler eine nullpointerexception :(
  4. Xandro

    Xandro - Mistkerl -

    Moin,

    oh ja, natürlich kann kein Stream auf den FileInputStream angewendet werden.
    Dummer Fehler, hätte den Compiler zur Hilfe nehmen sollen.

    Versuch's mal so:
    Code (Java):
    1. FileInputStream in = (FileInputStream) getClass().getResourceAsStream("constraint_checker.properties");
    Wenn das auch nicht geht, müsste man sich nochmal tiefgründiger mit den Streams befassen :rolleyes:

    Gruß,
    Xan
  5. Adrian_Broher

    Adrian_Broher Erfahrenes Mitglied

    Du benötigst du keinen FileInputStream und du musst da auch nichts selber parsen. Das geht mit der java.util.Properties Klasse wesentlich einfacher.

    Code (Java):
    1.  
    2. package de.tutorials.broher.propreader;
    3.  
    4. import java.util.Properties;
    5.  
    6. public class PropReader {
    7.     public static void main(String[] args) {
    8.         Properties props = new Properties();
    9.  
    10.         props.load(PropReader.class.getResourceAsStream("sample.properties"));
    11.  
    12.         String prop1 = props.get("prop1");
    13.         // gibt "wert 1" aus
    14.         System.out.println(prop1);
    15.  
    16.          // es existiert kein key namens "prop3"
    17.         String prop3 = props.get("prop3", "default");
    18.          // gibt "default" aus
    19.         System.out.println(prop3);
    20.  
    21.         // gibt eine Auflistung aller in der Properties
    22.         // existierenden Schlüssel-Wert Paare zurück.
    23.         props.list(System.out);
    24.     }
    25. }
    26.  
    Code (Text):
    1.  
    2. # sample.properties
    3. prop1 = wert 1
    4. prop2 = wert 2
    5.  
  6. Choe

    Choe Grünschnabel

    hi leute,

    danke für die antworten hat jetzt endlich geklappt :)

    mfg

Diese Seite empfehlen