2.1.2 | Unicode und plattformspezifische Zeichenkodierungen |
Da der Unicode-Zeichensatz von vielen Plattformen nicht unterstützt wird, müssen Daten vom Typ char (Zeichen) beispielsweise bei der Ein-/Ausgabe in eine Datei konvertiert werden. Beim Einlesen der Datei müssen die Zeichen aus der Zeichenkodierung der betreffenden Plattform in Unicode transformiert werden, und umgekehrt müssen Unicode-Zeichen beim Schreiben auf die entsprechenden Zeichen der Maschine abgebildet werden.
Diesem Problem wurde in Version 1.0 nur unzureichend begegnet: Die Klassen der Standardbibliothek, etwa der FileOutputStream, der Daten in eine Datei schreibt, schnitten beim Speichern das höherwertige Byte der Unicode-Zeichen einfach ab.
Eine adäquatere Lösung bieten die in Version 1.1 eingeführten Reader/Writer-Klassen. Diese Klassen werden jeweils über eine der bisherigen Stream-Klassen gelegt und nehmen die Hin- und Rücktransformation der Unicode-Zeichen entsprechend einer bestimmten Zeichenkodierung vor. Die Reader/Writer-Klassen werden ausführlich im Abschnitt 10.2 behandelt.