Hallo!
Vorweg, mir ist natürlich klar dass es eine Property Klasse in Java gibt - nur selbige kann nicht mit UTF8 umgehen (laden = nein ; speichern = nur als XML). Nun habe ich aber das Problem dass ich alle Property Einträge in die GUI anzeigen muss, weil selbige über die GUI editierbar sein müssen.
So nun habe ich folgendes geschrieben (Parameter "pfad" entspricht dem Filepfad - eh klar):
Nun habe ich aber das Problem dass nicht alle alle Zeilen eingelesen werden, sprich ab Zeile 32 oder 33 (es gibt zur Zeit 66 Zeilen - inkl Leerzeilen) hört mein Code einfach auf einzulesen (lustigerweise aber mit dem letzten Eintrag der Property Datei!) davor kommt es schon vor dass manche Zeilen ausgelassen werden.
Hat jemand eine Idee?
Oder einen alternativen Lösungsvorschlag?
mfg
Vorweg, mir ist natürlich klar dass es eine Property Klasse in Java gibt - nur selbige kann nicht mit UTF8 umgehen (laden = nein ; speichern = nur als XML). Nun habe ich aber das Problem dass ich alle Property Einträge in die GUI anzeigen muss, weil selbige über die GUI editierbar sein müssen.
So nun habe ich folgendes geschrieben (Parameter "pfad" entspricht dem Filepfad - eh klar):
Java:
private Map<String, String> laden(String pfad) {
Map<String, String> m = new HashMap<String, String>();
BufferedReader buffReader = null;
try {
buffReader = new BufferedReader(new InputStreamReader(
new FileInputStream(pfad), "UTF8"));
while (buffReader.readLine() != null) {
String zeile = buffReader.readLine();
if (!zeile.startsWith("#") && StringUtils.hasText(zeile)) {
System.out.println(zeile);
String[] s = zeile.split("=");
// Stelle 0 entspricht dem Key --> Pflichtfeld.
// Stelle 1 entspricht dem Value --> optional.
if (s.length == 1) {
m.put(s[0], "");
} else if (s.length == 2) {
m.put(s[0], s[1]);
}
}
}
} catch (UnsupportedEncodingException e) {
MainPropertiesController.logger.error(e);
} catch (IOException e) {
MainPropertiesController.logger.error(e);
} catch (ArrayIndexOutOfBoundsException e) {
MainPropertiesController.logger.error(e);
} finally {
if (buffReader != null) {
try {
buffReader.close();
} catch (IOException e) {
MainPropertiesController.logger.error(e);
}
}
}
return m;
}
Nun habe ich aber das Problem dass nicht alle alle Zeilen eingelesen werden, sprich ab Zeile 32 oder 33 (es gibt zur Zeit 66 Zeilen - inkl Leerzeilen) hört mein Code einfach auf einzulesen (lustigerweise aber mit dem letzten Eintrag der Property Datei!) davor kommt es schon vor dass manche Zeilen ausgelassen werden.
Hat jemand eine Idee?
Oder einen alternativen Lösungsvorschlag?
mfg