Tumbleweed
Captain
- Registriert
- März 2008
- Beiträge
- 3.598
Wozu braucht er Trennzeichen? Angesichts seiner Anforderung macht CSV überhaupt keinen Sinn. Er schreibt einen String pro Zeile. Da hat er mit deinem bzw. dem von dir favorisierten Code schon mal das Problem, dass du die Lines mit \n separierst, was nicht portabel ist. Zudem schließt du deine Ressourcen im Fehlerfall nicht. Um solche Dinge braucht man sich keinen Kopf machen, wenn man Libs bzw. die Standardlib benutzt.
Selbst wenn ich CSV schreiben wollte, würde ich das nicht selbst schreiben und hundert Fehler machen, weil ich was nicht bedenke, sondern einfach OpenCSV benutzen.
Es ist kein Zeichen von Schwäche, wenn man als Entwickler eher zu Libs greift, statt Code selbst zu schreiben. Das bedeutet nicht, dass man es nicht selbst schreiben könnte, sondern dass man sich bewusst ist, dass andere schon mehr Hirnschmalz in solche Probleme gesteckt haben, als man selbst (in der kurzen Zeit, in der man vor dem Problem steht).
Edit: da ich noch übersehen hatte, dass hier Objekte und keine Strings vorliegen, will ich nicht nur rumtönen, sondern auch da noch mit einem Beispiel helfen:
Von daher war die Richtung CSV ja doch nicht ganz falsch. Asche auf mein Haupt diesbezüglich!
Selbst wenn ich CSV schreiben wollte, würde ich das nicht selbst schreiben und hundert Fehler machen, weil ich was nicht bedenke, sondern einfach OpenCSV benutzen.
Es ist kein Zeichen von Schwäche, wenn man als Entwickler eher zu Libs greift, statt Code selbst zu schreiben. Das bedeutet nicht, dass man es nicht selbst schreiben könnte, sondern dass man sich bewusst ist, dass andere schon mehr Hirnschmalz in solche Probleme gesteckt haben, als man selbst (in der kurzen Zeit, in der man vor dem Problem steht).
Edit: da ich noch übersehen hatte, dass hier Objekte und keine Strings vorliegen, will ich nicht nur rumtönen, sondern auch da noch mit einem Beispiel helfen:
Code:
private static class Person {
private String firstName;
private String lastName;
private int age;
public Person(String firstName, String lastName, int age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
}
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Max", "Mustermann", 18));
people.add(new Person("computer", "base", 15));
List<String> peopleStrings = people.stream().map(p -> String.format("%s, %s, %d", p.lastName, p.firstName, p.age)).collect(Collectors.toList());
for (String s : peopleStrings) {
System.out.println(s);
}
}
Zuletzt bearbeitet: