Inhaltsverzeichnis API Einführung Java Entwicklungs-Kit Erste Programme Java-Grundwissen Erste Objekte Ein/Ausgabe in Java Oft benutzte Java-Werkzeuge Graphische Oberfläche Applets Threads Netzwerk Das TopDraw-Projet

Ein/Ausgabe in Java

  1. Ein/Ausgabe in Java
    1. Was ist ein Datenfluß?
    2. Wie werden sie benutzt?
    3. Was hat es mit diesen try-catch Klauseln auf sich?
    4. Zusammenfassend
    5. Übungen

Was ist ein Datenfluß?

In Java, wie auch in den meisten OO-Sprachen, werden die verschiedenen Ein/Ausgaben nach einheitlichem Schema behandelt. Zugriffe auf Dateien, Netzwerk-Sockets oder ähnliches werden als Datenfluß dargestellt (engl. Data-Stream). Alle Datenströme werden von den Grundklassen InputStream und OutputStream (im JDK 1.2 findet eine Transition zu den Klassen *Printer und *Writer statt) abgeleitet.

Diese Klassen sind abstrakt, d.h. das diese Klassen nicht instanziiert werden können, es müssen obligatorisch davon abgeleitete benutzt werden. Je nach Anwendungsart gibt es von den Grundstream-Klassen abgeleitete Klassen die für den jeweiligen Fall geeignet sind.

Hier sind ein paar:

Die Verschachtelung gibt die jeweilige Vererbungs-Relation an. Alle Klassen die von InputStream abgeleitet sind besitzen einen Konstruktor der als Argument einen InputStream nehmen. Analog besitzen alle von OutputStream abgeleitete Klassen einen Konstruktor der einen OutputStream als Argument nimmt.

Wie werden sie benutzt?

Was hat es mit diesen try-catch Klauseln auf sich?

Im vorhergehenden Code, waren bestimmte Bereiche in sogenannte try-catch Klauseln eingebunden. Diese dienen dazu evenuelle Fehler (Exceptions) abzufangen oder weiterzuleiten.

In dem Beispiel wurde in der Methode openAFile wurde der Fehler abgefangen, in dumpFile wurde der eventuelle Fehler weitergeleitet.

Das spezifische an dieser Art der Fehlerbehandlung ist, daß nicht der Zwang besteht sich sofort mit etwaigen Fehlern abzugeben. Weiterhin, ist es somit möglich Code zu schreiben, der in den meisten Fällen funktioniert, in den anderen Fällen einfach und präzise an anderer Stelle abgefangen werden kann. Dies ist besonders nützlich wenn Bibliotheksfuntionen gebaut werden.

Ein direkter Vorteil liegt in der Tatsache, daß der Programm-Code lesbar bleibt, da nicht mit lauter Konsistenz-Tests verunstaltet.

Es gibt eine ganze Reihe von möglichen Exceptions, die Informationen in der API geben z.B. für die Standardbibliotheks-Objekte die Exceptions an die erscheinen können.

Es ist auch möglich indem eigenen Klassen von Exception abgeleitet werden, eigene Fehlerfälle zu definieren. Allerdings sollte von diesem System nicht allzu-stark gebrauch gemacht werden, da diese Art der Fehlerbehandlung ziemlich Rechenzeitintensif ist.

Zusammenfassend

  1. Was ist ein Datenfluß?
  2. Wie öffne ich eine Datei?
  3. Was sind Exceptions?

Übungen

  1. Die Übungs-Klasse abschreiben welche als Kommandolinien-Parameter einen Dateinahmen nimmt, und diese Datei öffnet und auf die KommandoLinie copiert.

Inhaltsverzeichnis API Einführung Java Entwicklungs-Kit Erste Programme Java-Grundwissen Erste Objekte Ein/Ausgabe in Java Oft benutzte Java-Werkzeuge Graphische Oberfläche Applets Threads Netzwerk Das TopDraw-Projet

Document mit wml erzeugt von Bruno Böttcher unter Benutzung von öffentlichen Dokumenten.