Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 12. Vorlesung WS 2001/2002.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
Ein- und Ausgabe von Dateien
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Dateien. Eine Datei wird in C++ als ein Stream, also als ein Objekt einer bestimmten Klasse dargestellt.
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Exceptions. import java.sql.*; public class MyException{ boolean b; Statement stat; public MyException(){ b = stat.execute("xyz"); } Beim Übersetzen dieses.
Robotik mit LEGO Mindstorms
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 9. Vorlesung WS 2002/2003.
Java-AG Ausnahmebehandlung Gerhard Gröger.
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmierung 1 - Repetitorium
DVG Einführung in Java1 Einführung in JAVA.
Datenströme DVG Datenströme.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Wie macht man ein Sudoku? Transformations-Methode:
Copyright 2007 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2007/08 Kapitel 10, Folie 1 2 Dr. Christian Herzog Technische.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Copyright 2004 Bernd Brügge Einführung in die Informatik II TUM Sommersemester Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität.
Variablenkonzept Klassisch, in Java Basistyp
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Einführung Blue J. Inhaltsverzeichnis  Definition  Vokabeln.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 11. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 13. Vorlesung WS 2002/2003.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Java-Kurs Übung zAusnahmebehandlung: Exceptions zEin-/Ausgabe yDatenströme.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 7. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Ein- und Ausgabe in Java Packet: java.io
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Java Programme nur ein bisschen objektorientiert.
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
Java I/O Input / Output stream Library
Java I/O Input / Output stream Library
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Einführung in die Programmierung mit Java
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 12. Vorlesung WS 2001/2002

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/022 Übersicht Besprechung der Übungsaufgabe Ein- und Ausgabe in Java –Datenströme –Quellen, Senken und Filter –Zeichen und Rohdaten –Java-Klassen für Ein- und Ausgabe

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/023 Übungsaufgabe vom Schreiben Sie ein Programm, das ein Integer-Array mit 500 Elementen erzeugt. Füllen Sie das Array mit Zufallszahlen, die im Bereich von 0 bis 99 liegen sollen. Anschliessend soll eine Schleife mal 1.Eine Integer-Zufallszahl von 0 bis 510 erzeugen, 2. welche als Index in das Array verwendet wird und den an der entsprechenden Stelle befindlichen Wert x=a[zufallsindex] ausliest. 3. Dieser Wert x soll als Divisor für eine beliebige Division verwendet werden, z.B.: b = 10 / x Welche Fehler treten bei der Programmausführung auf? Ergänzen Sie das Programm um eine differenzierte Fehlerbehandlung, so dass es nicht mehr abbricht.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/024 Lösung Welche Fehler treten bei der Programmausführung auf? ArrayIndexOutOfBoundsException weil die Zufallsvariable, die auf das Array-Element verweist, auch die Werte 500 bis 510 annehmen kann. Die Array-Grenze reicht aber nur bis 499. ArithmeticException: / by zero weil der aus dem Array gelesene Divisor auch den Wert 0 besitzen kann. Ergänzen Sie das Programm um eine differenzierte Fehlerbehandlung, so dass es nicht mehr abbricht. Lösung: die zweite Schleife in einen try-catch-Block einschließen mit zwei catch-Anweisungen für die beiden Exception-Klassen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/025 Ein- und Ausgabe in Java Alle Ein- und Ausgabefunktionen von Java sind Datenstrom-basiert (Stream-basiert). Die beteiligten Komponenten sind: –Quelle (oder auch Produzent) Beispiele: Datei, Internet-Verbindung, Prozess, Tastatur, Sensoren,... –Senke (oder auch Ziel, Konsument) Beispiele: Datei, Internet-Verbindung, Drucker, Bildschirm, Prozess,... Bei Quellen und Senken wird zwischen externen und internen Datenströmen unterschieden. –extern: Daten verlassen bzw. kommen von außen in die Java-Umgebung –intern: Daten fließen zwischen Prozessen und/oder Methoden

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/026 Ein- und Ausgabedatenströme Aus der Sicht eines Prozesses bzw. Programmabschnitts (z.B. einer Methode) sind Datenströme entweder –Eingabedatenströme oder –Ausgabedatenströme Der Ausgabestrom eines Prozesses bzw. einer Methode kann der Eingabestrom für einen anderen Prozess sein –Die Verbindung zwischen den beiden Prozessen / Methoden wird dabei auch als Kanal bezeichnet Mehrere Verbindungen möglich: –mehrere Prozesse können ihre Ausgabedatenströme in denselben Eingabestrom eines anderen Prozesses einspeisen –Mehrere Prozesse können sich mit ihrem Eingabestrom an denselben Ausgabestrom eines anderen Prozesses anhängen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/027 Filter, Eigenschaften von Datenströmen Es gibt spezielle Ein-/Ausgabekomponenten, die genau einen Ein- und Ausgabekanal besitzen; diese werden auch als Filter bezeichnet –Aufgaben: Filterung, Transformation, Konvertierung der durchgereichten Daten –Beispiele: Verschlüsselung, (De-)Kompression, Zeichensatzanpassung Datenströme können –endlich (z.B. eine Datei, oder WWW-Seite) oder –unendlich (z.B. Mausbewegungen, Sensormessungen) sein.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/028 Unterscheidung von Rohdaten und Text Bei der Art der ein- und auszugebenden Daten wird kategorisch unterschieden zwischen –Rohdaten (Bytes) –Zeichen (Text) Hintergrund: 1. Früher reichte ein Byte um ein Zeichen zu speichern (das amerikanische Standardzeichenformat ASCII benötigte sogar nur 7 Bit) Zur Unterstützung der Mehrsprachigkeit wurde ein neuer Standard geschaffen, der sog. Uni-Code mit 16 Bit pro Zeichen Java unterstützt sowohl die bisherigen Codierungen als auch Uni-Code. 2.Einige Ein- und Ausgabefunktionen sind für verschiedene Betriebs- systeme unterschiedlich. Beispiel: Der Zeilenumbruch wird unter Windows anders realisiert als unter Linux oder MacOS

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/029 Java-Basisklassen für Ein- und Ausgabe InputStream :stellt Methoden zum Einlesen/ Öffnen von Byte- Streams (Rohdaten) zur Verfügung OutputStream :stellt Methoden zum Öffnen/ Ausgabe von Byte- Streams (Rohdaten) zur Verfügung Reader :stellt Methoden analog zum InputStream für Textdateien zur Verfügung Writer :analog zum OutputStream allerdings für Text alle 4 Klassen sind abstrakte Klassen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0210 Klassen zum Einlesen von Rohdaten (Bytes) Datei (Lesen) zur Interprozess- kommunikation aus Strings lesen gepufferte Eingabe Lesen komprimierter Daten Einlesen von Java Datentypen Die gleiche Klassenhierarchie existiert auch für OutputStreams

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0211 Klassen zur Ausgabe von Text gepufferte Ausgabe Textausgabe via Outputstreams Basisklasse für Konstruktion von Ausgabe- filtern Textausgabe in Datei Die gleiche Klassenhierarchie existiert auch für Reader Textuelle Ausgabe der Java-Basistypen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0212 Schnittstelle zwischen Text und Rohdaten Jeder Text wird letztlich auf eine Folge von Bytes abgebildet, wenn er übertragen oder in eine Datei geschrieben werden soll. –gleiches gilt für externe Datenquellen Konvertierung von Text- in Rohdaten notwendig (und umgekehrt) Klasse InputStreamReader: Abstrakte Basisklasse für alle Reader, die einen Byte-Strom in einen Zeichenstrom umwandeln. –Unterklasse: z.B. FileReader zum Einlesen von Text aus Dateien Klasse OutputStreamWriter: Abstrakte Basisklasse für alle Writer, die einen Zeichenstrom in einen Byte-Strom umwandeln. –Unterklasse z.B. FileWriter für Textausgaben in eine Datei

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0213 Arbeiten mit Datenströmen 1.Datenstrom öffnen –z.B. durch Erzeugen eines FileWriter- oder FileReader-Objekts, wobei der Dateiname dem Konstruktor übergeben wird Beispiel: FileWriter datei = new FileWriter(“C:\\Temp\\test.txt“); Um in einem String einen Backslash \ einzugeben, müssen zwei \\ hintereinander angeben werden. 2.Daten schreiben bzw. lesen –die konkreten Methoden hängen von der verwendeten Ein-/ Ausgabeklasse ab (siehe Java-Dokumentation) Beispiel: datei.write(“Hallo Welt!“); 3.Datenstrom schließen –Spätestens am Ende des Programms muss der Datenstrom geschlossen werden Beispiel: datei.close();

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0214 Ausnahmebehandlung bei Ein-/Ausgaben Bei fast allen Ein- und Ausgabeoperationen können Fehler auftreten. –z.B.: Datei voll, Datei nicht vorhanden, keine Zugriffsberechtigung,... Zur Fehleranzeige lösen die Ein- und Ausgabemethoden von Java entsprechende Exceptions aus –Die Ein- und Ausgabemethoden sind so definiert, dass ein Aufrufer sich um das Auftreten möglicher Exceptions explizit kümmern muss –Aufrufe von Ein- und Ausgabemethoden müssen deshalb in einen try- catch-Block eingebettet werden –Eingabe-/Ausgabe-Exceptions sind Unterklassen von der Klasse IOException

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0215 Standardein- und ausgabeströme (I) Grundsätzlich besitzt jedes Java-Programm drei vordefinierte Ein- und Ausgabedatenströme: –Standardeingabe –Standardausgabe –Standardfehlerausgabe Diese Ströme werden von der Laufzeitumgebung des Java- Programms beim Programmstart eingerichtet und geöffnet. –Für die Standardeingabe wird ein Objekt der Klasse InputStream erzeugt und der Klassenvariable System.in der Klasse System zugewiesen –Für die Standardausgabe und die Standardfehlerausgabe werden je ein Objekt der Klasse PrintStream erzeugt und den Klassenvariablen System.out bzw. System.err der Klasse System zugewiesen

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0216 Standardein- und ausgabeströme (II) In der Entwicklungsumgebung Forté wird –der Standardausgabe- sowie der Standardfehlerausgabestrom auf das Ausgabefenster gelenkt –der Standardeingabestrom durch das Eingabefeld „Program Input:“ am unteren Rand des Ausgabefensters bedient Eigenständig laufende Java-Programme (außerhalb einer Entwicklungsumgebung) lenken die Standardströme oftmals in das Fenster (z.B. MSDOS-Eingabeaufforderung oder Linux Shell-Fenster), in dem das Programm gestartet wurde Per Voreinstellung sind die Standardein- und Ausgabedatenströme also unendlich, sie können aber auch auf einen Dateilese- oder –schreibdatenstrom umgelenkt werden.

T. H. Kolbe - Einführung in die Programmierung mit Java - 1. Semester - WS 01/0217 Übungsaufgabe Mini-Taschenrechner Schreiben Sie ein Programm, das eine Zeile von der Standardeingabe einliest (String) Diese Zeile soll eine Grundrechenoperation auf ganzen Zahlen ausdrücken. Beispiel für erlaubte Eingaben: /9 2* Das Programm soll den Ausdruck auswerten und das Ergebnis ausgeben