Für java.io.* gibt's eine einfache Regel: InputStream und OutputStream sind für Binärdaten, Reader und Writer für Text. DataOutput ist explizit (Doku!) für die Ausgabe von Binärdaten. Anwendungsgebiet von DataOutput und DataInput sind die (De)serialisierung von Java-Daten in einer - von der Byte Order auf Little Endian Maschinen mal abgesehenen - mit C möglichst einfach zu verarbeitenden Form. Daher die Modifikation: Weil der 0-Codepoint als Zwei-Byte-Zeichen kodiert wird, lassen sich Strings Null-terminieren, sehr praktisch für C. Für die Ausgabe von Text in normale Text-Dateien (Plain Text, XML etc.) sind aber Writer zu verwenden. Wer dafür DataOutput misbraucht, verwendet schlicht die falsche Klassen und braucht sich über Probleme nicht wundern. -- ChristianHujer 11:44, 23. Aug 2004 (CEST)