Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Java ist auch eine Insel (3. Aufl.) von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 1.4
Buch: Java ist auch eine Insel
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 zurücklegen mit der Klasse PushbackReader
  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 Zugriff auf SMB-Server
    gp 12.12.1 jCIFS
  gp 12.13 Persistente Objekte und Serialisierung
    gp 12.13.1 Objekte speichern
    gp 12.13.2 Objekte lesen
    gp 12.13.3 Die Schnittstelle Serializable
    gp 12.13.4 Nicht serialisierbare Attribute mit transient aussparen
    gp 12.13.5 Das Abspeichern selbst in die Hand nehmen
    gp 12.13.6 Tiefe Objektkopien
    gp 12.13.7 Versionenverwaltung und die SUID
    gp 12.13.8 Beispiele aus den Standardklassen
    gp 12.13.9 Serialisieren in XML-Dateien
    gp 12.13.10 JSX (Java Serialization to XML)
    gp 12.13.11 XML-API von Sun
  gp 12.14 Die Logging-API


Galileo Computing

12.3 Übersicht über wichtige Stream- und WriterReader downtop

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 Basisklassen downtop

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ürBytes (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.

1 Byte-Stream-Klasse für die
Ausgabe
Zeichen-Stream Klasse für die AusgabeBeschreibung
Tabelle 12.2 Wichtige Ausgabeklassen
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.






1Zurzeit noch nicht implementiert. Byte-Stream-Klasse für
die Eingabe Zeichen-Stream-Klasse
für die Eingabe Beschreibung
Tabelle 12.1 Wichtige Eingabeklassen
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





Copyright © Galileo Press GmbH 2003
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] [Buchkatalog] [Neue Bücher] [Vorschau]

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