Laden...

Positionieren in Unicode-Textdatei

Erstellt von wdb.lizardking vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.026 Views
wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren
Positionieren in Unicode-Textdatei

Hallo,

ich schreibe abwechselnd an das Ende von Textdateien. Dazu positioniere ich den Schreibstrom per Seek-Methode am Ende der Datei.


StreamWriter fileOut = new StreamWriter(new FileStream(_name,
                                        _mode, _access, _share), _encoding);

fileOut.BaseStream.Seek(0,SeekOrigin.End);
fileOut.WriteLine("test");

Je nach Dateikodierung öffne ich die Textdateien entweder per Standard- (Codepage: 1252) oder Unicode-Kodierung (Codepage: 1200).

Bei normaler Kodierung steht der Teststring in einer neuen Zeile am Ende der Textdatei.Bei Unicode-Kodierung steht vor dem String noch ein nicht druckbares Zeichen.

Dieses Verhalten ist nicht gewünscht und ich möchte - wenn es möglich ist - vermeiden, eine Sonderbehandlung für Unicode einzuführen.
Gibt es vielleicht eine gleichbleibende und darum empfehlenswertere Methode des StreamWriters um an das Dateiende zu schreiben?

Ich habe gelesen, dass es bei Unicode kein EOF-Tag gibt, wie bei Textdateien üblich. Hat dies damit etwas zu tun?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo wdb.lizardking,

hast du mal geguckt, ob das nicht druckbare Zeichen ein (an dieser Stelle natürlich witzloses) BOM ist? Wenn ja, musst du ein Encoding-Objekt verwenden, dass kein BOM schreibt. Das kann man beim Konstruktor angeben.

herbivore