Zeichen-Ströme dienen zur Speicherung von Texten. Sie wurden in Java1.1 eingeführt.
Im Gegensatz zu den Byte-Strömen, die bis Java1.0 auch zur Zeichenausgabe verwendet wurden, garantieren die Zeichen-Strom-Klassen die korrekte Umsetzung von Unicode gemäß der lokalen Gegebenheiten.
Zeichen-Strom-Eingabe wird von der abstrakten Klasse Reader realisiert:
import java.io.*; public class ReadLines { public static void main (String a[]) { BufferedReader din = new BufferedReader( new InputStreamReader(System.in)); String line; do { try { line = din.readLine(); } catch(IOException ioe) { break; } if (line == null) // end of stream break; System.out.println(line); } while (true); } }
Die Klasse StringReader bietet die Standard-Funktionalität der Reader-Klassen, wobei die Lesequelle ein String ist.
import java.io.*; class StrRead { public static void main(String[] a) throws IOException { StringReader inp = new StringReader(a[0]); int c; while((c = inp.read()) != -1) System.out.println((char)c); } }
Zeichen-Strom-Ausgabe wird von der abstrakten Klasse Writer realisiert:
Die Klasse PrintWriter bietet Methoden für die Zeichenausgabe
der Java-Grundtypen.
Sie ersetzt in Java1.1 die Klasse PrintStream
(siehe Seite ).
import java.io.*; class SquareList { public static void main(String[] a) throws IOException { PrintWriter out = new PrintWriter( new BufferedWriter( new FileWriter("square.list"))); for (int i = 0; i < Integer.parseInt(a[0]); i++) { out.print(i); out.print(": "); out.println(Math.sqrt(i)); } out.close(); } }