Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 12 Datenströme und Dateien
gp 12.1 Datei und Verzeichnis
gp 12.1.1 Dateien und Verzeichnisse mit der Klasse File
gp 12.1.2 Dateieigenschaften und -attribute
gp 12.1.3 Sicherheitsprüfung
gp 12.1.4 Umbenennen und Verzeichnisse anlegen
gp 12.1.5 Die Wurzel aller Verzeichnisse
gp 12.1.6 Verzeichnisse listen und Dateien filtern
gp 12.1.7 Dateien und Verzeichnisse löschen
gp 12.1.8 Implementierungsmöglichkeiten für die Klasse File
gp 12.1.9 Verzeichnisse nach Dateien rekursiv durchsuchen
gp 12.2 Dateien mit wahlfreiem Zugriff
gp 12.2.1 Ein RandomAccessFile öffnen
gp 12.2.2 Aus dem RandomAccessFile lesen
gp 12.2.3 Schreiben
gp 12.2.4 Die Länge des RandomAccessFile
gp 12.2.5 Hin und her in der Datei
gp 12.3 Übersicht über wichtige Stream- und WriterReader
gp 12.3.1 Die abstrakten Basisklassen
gp 12.3.2 Übersicht über Ein-/Ausgabeklassen
gp 12.4 Eingabe- und Ausgabe-Klassen: InputStream und OutputStream
gp 12.4.1 Die Klasse OutputStream
gp 12.4.2 Ein Datenschlucker
gp 12.4.3 Anwendung der Klasse FileOutputStream
gp 12.4.4 Die Eingabeklasse InputStream
gp 12.4.5 Anwenden der Klasse FileInputStream
gp 12.4.6 Kopieren von Dateien
gp 12.4.7 Daten filtern durch FilterInputStream und FilterOutputStream
gp 12.4.8 Der besondere Filter PrintStream
gp 12.4.9 System.in und System.out
gp 12.4.10 Bytes in den Strom schreiben mit ByteArrayOutputStream
gp 12.4.11 Ströme zusammensetzen mit SequenceInputStream
gp 12.5 Ressourcen wie Grafiken aus dem Klassenpfad und aus Jar-Archiven laden
gp 12.6 Die Unterklassen von Writer
gp 12.6.1 Die abstrakte Klasse Writer
gp 12.6.2 Datenkonvertierung durch den OutputStreamWriter
gp 12.6.3 In Dateien schreiben mit der Klasse FileWriter
gp 12.6.4 StringWriter und CharArrayWriter
gp 12.6.5 Writer als Filter verketten
gp 12.6.6 Gepufferte Ausgabe durch BufferedWriter
gp 12.6.7 Ausgabemöglichkeiten durch PrintWriter erweitern
gp 12.6.8 Daten mit FilterWriter filtern
gp 12.7 Die Klassen um Reader
gp 12.7.1 Die abstrakte Basisklasse Reader
gp 12.7.2 Automatische Konvertierungen mit dem InputStreamReader
gp 12.7.3 Dateien lesen mit der Klasse FileReader
gp 12.7.4 StringReader und CharArrayReader
gp 12.8 Schachteln von Eingabe-Streams
gp 12.8.1 Gepufferte Eingaben mit der Klasse BufferedReader
gp 12.8.2 LineNumberReader zählt automatisch Zeilen mit
gp 12.8.3 Eingaben filtern mit der Klasse FilterReader
gp 12.8.4 Daten mit der Klasse PushbackReader zurücklegen
gp 12.9 Kommunikation zwischen Threads mit Pipes
gp 12.9.1 PipedOutputStream und PipedInputStream
gp 12.9.2 PipedWriter und PipedReader
gp 12.10 Datenkompression
gp 12.10.1 Die Java-Unterstützung beim Komprimieren und Zusammenpacken
gp 12.10.2 Datenströme komprimieren
gp 12.10.3 Zip-Archive
gp 12.11 Prüfsummen
gp 12.11.1 Die Schnittstelle Checksum
gp 12.11.2 Die Klasse CRC32
gp 12.11.3 Die Adler32-Klasse
gp 12.12 Persistente Objekte und Serialisierung
gp 12.12.1 Objekte speichern
gp 12.12.2 Objekte lesen
gp 12.12.3 Die Schnittstelle Serializable
gp 12.12.4 Nicht serialisierbare Attribute mit transient aussparen
gp 12.12.5 Das Abspeichern selbst in die Hand nehmen
gp 12.12.6 Tiefe Objektkopien
gp 12.12.7 Versionenverwaltung und die SUID
gp 12.12.8 Wie die ArrayList serialisiert
gp 12.12.9 Serialisieren in XML-Dateien
gp 12.12.10 JSX (Java Serialization to XML)
gp 12.12.11 XML-API von Sun
gp 12.13 Zugriff auf SMB-Server
gp 12.13.1 jCIFS
gp 12.14 Tokenizer
gp 12.14.1 StreamTokenizer
gp 12.14.2 CSV (Comma Separated Values)-Dateien verarbeiten
gp 12.15 Die Logging-API


Galileo Computing

12.3 Übersicht über wichtige Stream- und WriterReaderdowntop

Alle Datenströme sind als Klassen repräsentiert, die im Paket java.io gesammelt sind. In den ersten Java-Versionen konnten nur Primitive beziehungsweise Bytes und Byte-Arrays geschrieben und gelesen werden. Doch seit Java 1.1 gibt es für Byteströme und Unicodezeichen-Ströme getrennte Klassen. Das macht aus mehreren Gründen Sinn: Das Einlesen von Unicode-Dateien ist vereinfacht, und Daten müssen nicht auf festgelegten Zeichensätzen arbeiten, ja wir bekommen vom Konvertieren von Unicode nach Bytes überhaupt nichts mit. Ein anderer Vorteil ist die gewonnene Einlesegeschwindigkeit. Die meisten Byteströme lesen und schreiben nur dann ein Zeichen, wenn sie es brauchen.


Galileo Computing

12.3.1 Die abstrakten Basisklassendowntop

Die komplexen Eingabeklassen wie FileInputStream, ByteArrayOutputStream oder BufferedWriter basieren auf einer abstrakte Klasse OutputSteam, die eine Schnittstelle für einzulesende Bytes ist. Im Allgemeinen können wir vier Kategorien bilden: Klassen zur Ein-/Ausgabe von Bytes (oder Byte-Arrays) und Klassen zur Ein-/Ausgabe von Unicode-Zeichen (oder Strings). Die aufgeführten Klassen geben Methoden vor, die für jede implementierende Klasse von Interesse sind.


Basisklasse für Bytes (oder Byte-Arrays) Zeichen (oder Zeichen-Arrays)
Eingabe InputStream Reader
Ausgabe OutputStream Writer


Galileo Computing

12.3.2 Übersicht über Ein-/Ausgabeklassentoptop

Die folgenden Tabellen geben eine Übersicht über die wichtigsten Eingabe- und Ausgabe-Klassen.


Byte-Stream-Klasse für
die Eingabe
Zeichen-Stream-Klasse
für die Eingabe
Beschreibung
InputStream Reader Abstrakte Klasse für Zeicheneingabe und Byte-Arrays
BufferedInputStream BufferedReader Puffert die Eingabe.
LineNumberInputStream LineNumberReader Merkt sich Zeilennummern beim Lesen.
ByteArrayInputStream CharArrayReader Liest Zeichen-Arrays oder Byte-Arrays.
(keine Entsprechung) InputStreamReader Wandelt Byte-Stream in Zeichen-Stream um, Bindeglied zwischen Bytes und Zeichen.
DataInputStream (keine Entsprechung) Liest Primitive und auch UTF-8.
FilterInputStream FilterReader Abstrakte Klassse für gefilterte Eingabe
PushbackInputStream PushbackReader Erlaubt gelesene Zeichen wieder in den Stream zu geben.
PipedInputStream PipedReader Liest von einem
PipedWriter oder
PipedOutputStream.
StringBufferInputStream unter 1.1 nicht mehr erwünscht StringReader Liest aus Strings.
SequenceInputStream (keine Entsprechung) Verbindet zwei andere InputStreams.
TelepathicInputStream TelepathicWriter Überträgt Daten mittels Telepathie.5

Tabelle 12.1 Wichtige Eingabeklassen


Byte-Stream-Klasse für die
Ausgabe
Zeichen-Stream Klasse für die Ausgabe Beschreibung
OutputStream Writer Abstrakte Klasse für Zeichenausgabe oder Byte-Ausgabe
BufferedOutputStream BufferedWriter Ausgabe des Puffers, nutzt passendes Zeilenendezeichen
ByteArrayOutputStream CharArrayWriter Schreibt Arrays.
DataOutputStream (kein Entsprechung) Schreibt Primitive und auch UTF-8.
(keine Entsprechung) OutputStreamWriter Übersetzt Zeichen-Stream in Byte-Stream.
FileOutputStream FileWriter Schreibt in eine Datei.
PrintStream PrintWriter Schreibt Werte (oder Objekte).
PipedOutputStream PipedWriter Schreibt in eine Pipe.
(keine) StringWriter Schreibt in einen String.

Tabelle 12.2 Wichtige Ausgabeklassen





Copyright (c) Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de