Aus Datei lesen mit ".getProperty": leer ?

  • Themenstarter Themenstarter Louis2
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

ich hole aus einer .ini Datei Werte mit getProperty().
Mein Problem ist, dass wenn ein Eintrag leer ist z.B
Code:
Addresser Email=
die Meldung
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
erscheint.
Wie kann ich abfragen ob der Eintrag der in tmp[1] landet leer ist oder nicht? Mit "null" oder "" funktioniert es leider nicht...

Das ganze sieht so aus:
Code:
Addresser Email=test@test.com
BCC Email=test@test.com
SMTP Server=10.50.70.74

Mein Java Code dazu:
Code:
Properties prop = new Properties();
InputStream in = new FileInputStream("D:/temp/EMailClient.ini");
b = new BufferedReader(new InputStreamReader(in)); 
prop.load(in);
INIEmailFrom1 = prop.getProperty("Addresser");
tmp = INIEmailFrom1.split("=");
//if (tmp[1] == null)
//	INIEmailFrom = "";
//else
INIEmailFrom = tmp[1];
INIEmailToBCC1 = prop.getProperty("BCC");
tmp = INIEmailToBCC1.split("=");
INIEmailToBCC = tmp[1];
INIHost1 = prop.getProperty("SMTP");
tmp = INIHost1.split("=");
INIHost = tmp[1];
 
sowas ähnliches hatten wir hier schonmal.. wenn ich mich richtig erinnere, dürfen keinen Leerzeichen im Key vorhanden sein !

d.h.
Code:
AddresserEmail=test@test.com
BCCEmail=test@test.com
SMTPServer=10.50.70.74
und dann einfach per getProperty("BCCEmail"); z.b. den Wert "test@test.com" bekommen
 
@deathbyaclown: Ne das meine ich nicht. Ich meine wie kann ich überprüfen was nach dem = kommt ;-) Ob es leer oder nicht leer ist (s. oben) ;-)
 
Mit getProperty(String key) bekommst du auch nur das, was nach dem "=" steht. Du brauchst nichts mehr split'en. Und wenn getProperty() entweder null oder "" [.length() == 0] zurückgibt, dann steht nichts hinter dem "=". null kann aber auch bedeuten, dass es die Eigenschaft nicht gibt.
 
Das splitten habe ich nur gebraucht weil ich Addresser und Email separat geschrieben habe, aber das klappt das war auch nicht die Frage.

Meine Frage war, wie kann ich abfragen/checken ob nach dem "=" ja oder nein was steht ??
Mit meinem Code bringt er mir eine Fehlermeldung wenn ich nach dem "=" nichts schreibe
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
ich will aber überprüfen können ob nach dem "=" was steht.
 
Code:
Properties prop = new Properties();
InputStream in = new BufferedInputStream(new FileInputStream("D:/temp/EMailClient.ini"));
prop.load(in);
INIEmailFrom1 = prop.getProperty("addresser.email", "");
Man beachte den zweiten Parameter von getProperty(String,String).
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben