Habe mir ein kleines Tool geschrieben, das mir einige Operationen auf Textfiles erlaubt, die ich öfters durchführen muss.
Jetzt war ich der Meinung, dass wenn ich die Encodings (UTF-8, ISO-8859-1, etc.) nicht explizit ändere, müsste doch eigentlich das selbe gespeichert werden was auch reinkam.
So lese ich eine Datei ein:
[highlight=Java]FileInputStream in = new FileInputStream(datei);
byte b[] = new byte[datei.length()];
in.read(b);
in.close();
String text = new String(b);
[/highlight]
Dann kommen beliebige Funktionen auf dem String text, z.B.
text = text.replace(":", ".");
Und jetzt wird wieder gespeichert:
[highlight=Java]
FileOutputStream out = new FileOutputStream(datei);
out.write(text.getBytes());
out.close();
[/highlight]
Leider bekomme ich bei UTF-8 Files nur Kauderwelsch an den Stellen mit Speziellen Zeichen raus.
Hab ich hier irgendwo einen Denkfehler?
Jetzt war ich der Meinung, dass wenn ich die Encodings (UTF-8, ISO-8859-1, etc.) nicht explizit ändere, müsste doch eigentlich das selbe gespeichert werden was auch reinkam.
So lese ich eine Datei ein:
[highlight=Java]FileInputStream in = new FileInputStream(datei);
byte b[] = new byte[datei.length()];
in.read(b);
in.close();
String text = new String(b);
[/highlight]
Dann kommen beliebige Funktionen auf dem String text, z.B.
text = text.replace(":", ".");
Und jetzt wird wieder gespeichert:
[highlight=Java]
FileOutputStream out = new FileOutputStream(datei);
out.write(text.getBytes());
out.close();
[/highlight]
Leider bekomme ich bei UTF-8 Files nur Kauderwelsch an den Stellen mit Speziellen Zeichen raus.
Hab ich hier irgendwo einen Denkfehler?