Bei den ganzen Streams und Reader und Writer bin ich mittlerweile ein bißchen verwirrt und frage mich, wie man denn nun am besten eine Textdatei schreibt bzw. wieder einliest.
Dabei würde ich eher eine Variante bevorzugen, die auch bei größeren Datenmengen noch performant ist. Ich werde außerdem mal UTF-8 und mal ANSI-Ausgabe liefern müssen (bzw. entsprechende Eingaben lesen).
Ich habe da mal zB mit FileOutputStream und OutputStreamWriter gearbeitet und dabei festgestellt dass ich mich selber um richtige Startsequenz bei UTF-8-codierten Textfiles achten muss:
Zumindest unter Windows wird von Notepad ein Textfile sonst nicht richtig als UTF-8 erkannt. Das darf ich natürlich nur schreiben, wenn es ein neues File ist. Wenn an eine bestehende Textdatei angehängt werden soll, dann darf ich das natürlich nicht so ausgeben.
Ich habe aber auch gesehen dass es eine Klasse DataOutputStream gibt, die würde eine Methode writeUTF anbieten. Fragt sich nur, ob das dann in allen Fällen richtig funktioniert - auch wenn ich zB Anhängen will an ein bestehendes File (habe das mit DataOutputStream noch nicht probiert). Die Klasse DataOutputStream muss man außerdem ja mit einem anderen Stream noch kombinieren, sonst tut das ja so nicht.
Ich sehe auf jeden Fall zig Möglichkeiten, wie ich es angehen könnte Textdateien zu lesen und zu schreiben - und wie erwartet zeigt mir Tante Google auch viele verschiedene Möglichkeiten. ???:L
Dabei würde ich eher eine Variante bevorzugen, die auch bei größeren Datenmengen noch performant ist. Ich werde außerdem mal UTF-8 und mal ANSI-Ausgabe liefern müssen (bzw. entsprechende Eingaben lesen).
Ich habe da mal zB mit FileOutputStream und OutputStreamWriter gearbeitet und dabei festgestellt dass ich mich selber um richtige Startsequenz bei UTF-8-codierten Textfiles achten muss:
Code:
char c1 = 239;
char c2 = 187;
char c3 = 191;
String utf8Start = String.valueOf(c1) + String.valueOf(c2) + String.valueOf(c3);
Ich habe aber auch gesehen dass es eine Klasse DataOutputStream gibt, die würde eine Methode writeUTF anbieten. Fragt sich nur, ob das dann in allen Fällen richtig funktioniert - auch wenn ich zB Anhängen will an ein bestehendes File (habe das mit DataOutputStream noch nicht probiert). Die Klasse DataOutputStream muss man außerdem ja mit einem anderen Stream noch kombinieren, sonst tut das ja so nicht.
Ich sehe auf jeden Fall zig Möglichkeiten, wie ich es angehen könnte Textdateien zu lesen und zu schreiben - und wie erwartet zeigt mir Tante Google auch viele verschiedene Möglichkeiten. ???:L