Info B VL 7: Input/Output
|
|
- Nicolas Baumgartner
- vor 6 Jahren
- Abrufe
Transkript
1 Info B VL 7: Input/Output Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 7: Input/Output p.174
2 Exkurs: Design Patterns siehe Cooper, Java Design Patterns Abstrakter Code, Schema, das wiederverwendet werden kann Beispiel: Factory-Pattern X XFactory +do_x() +XFactory() +newobj() : X XY +do_x()... XZ +do_x() Info B VL 7: Input/Output p.175
3 Eingabe-/Ausgabeströme (1) open a stream while more information read information close the stream open a stream while more information write information close the stream Info B VL 7: Input/Output p.176
4 Eingabe-/Ausgabeströme (2) Einlesen von Information aus externer Quelle (source): Tastatur, Datei, Speicher, anderes Programm, Internet,... Ausgabe von Information zu externer Destination (sink): Bildschirm, Datei, Drucker, Speicher, anderes Programm, Internet,... Information: Zeichen, Objekte, Bilder Verarbeitung immer sequentiell! Info B VL 7: Input/Output p.177
5 Struktur von java.io (1) Reader Writer Abstrakte Klassen zum Lesen und Schreiben von Character Strömen Object InputStream OutputStream Abstrakte Klassen zum Lesen und Schreiben von Byte Strömen RandomAccessFile Lesen und Schreiben an beliebigen Stellen in einer Datei StreamTokenizer Zerlegung von Input in Tokens File Plattform unabhängige Definition von Datei und Verzeichnisnamen <<interface>> Serializable <<interface>> Externizable Info B VL 7: Input/Output p.178
6 Struktur von java.io (2) auf oberster Ebene : Abstrakte Klassen zum Lesen/Schreiben von Charund Byte-Strömen: Reader/Writer (Chars), InputStream/OutputStream (Bytes) RandomAccessFile: Lesen und Schreiben von Bytes/Text/primitiven Typen von/in spezifische Position einer Datei StreamTokenizer: Zerlegung des Eingebestroms in Tokenns (einfache lexikalische Analyse) File: BS-unabhängige Repräsentation von Datei- und Pfadnamen. File-Objekt bezeichnet den Dateistrom aus/in den gelesen/geschrieben werden kann. Methoden zum Listem von Verzeichnissen, Pruefen von Rechten etc. Info B VL 7: Input/Output p.179 File implementiert das Serializable-Interface
7 Character und Byte Ströme Lesen/Schreiben von 16-Bit (unicode) Zeichen: Abstrakte Reader/Writer Klasse und entsprechende Unterklassen (ab Java 1.1). Lesen/Schreiben von 8-Bit Bytes: Abstrakte InputStream/OutputStream Klasse und entsprechende Unterklassen (ab Java 1.0). Ähnliche APIs (Methoden mit gleichem Namen und äquivalenter Signatur) für verschiedene Character- und Byte-Ströme. Für Byte-Ströme werden Byte-Arrays, für Character-Ströme Character-Arrays verarbeitet. Info B VL 7: Input/Output p.180
8 read und write (1) int read() int read(char cbuf[]) int read(char cbuf[], int offset, int length) int write(int c) int write(char cbuf[]) int write(char cbuf[], int offset, int length) read() und write() können IOExceptions werfen. Überladene Methoden: Lesen/Schreiben eines Zeichens/Bytes. Lesen/Schreiben in/aus Array von Zeichen/Bytes. Lesen/Schreiben von length Zeichen/Bytes in/aus Array ab Index offset. Info B VL 7: Input/Output p.181
9 read und write (2) read() liefert int zurück: für Bytes oder (0x00-0xffff) für Characters und -1 für Ende des Stroms. Bei den Methoden, die Arrays verarbeiten, wird die Anzahl der verarbeiteten Zeichen/Bytes zurückgeliefert bzw. -1 für Ede des Stroms. Info B VL 7: Input/Output p.182
10 Reader und Writer (1) InputStreamReader FileReader FileInputStream Reader BufferedReader InputStream BufferedInputStream FilterReader FilterInputStream OutputStreamReader FileWriter FileOutputStream Writer BufferedWriter OutputStream BufferedOutputStream FilterWriter FilterOutputStream Info B VL 7: Input/Output p.183
11 Reader und Writer (2) Um komplexe Funktionalität zu erhalten, werden gerade im I/O-Bereich häufig Objekte komponiert/ineinander verschachtelt. Viele Konstruktoren und Methoden in java.io werfen Exceptions! Die Klasse InputStreamReader bietet eine Reader-Schnittstelle zu einem InputStream (analog für OutputStreamWriter): ein InputStream-Objekt wird in ein InputStreamReader-Objekt eingebettet. public class InputStreamReader extends Reader { public InputStreamReader(java.io.InputStream in); //... } Info B VL 7: Input/Output p.184
12 Reader und Writer (3) Schreiben in eine Datei und Lesen aus einer Datei kann mit FileWriter und FileReader erledigt werden. Die Angabe von Dateien kann über File-Objekte oder (plattform-spezifische) Dateinamen als Strings erfolgen. Konstruktoren: public class FileReader extends InputStreamReader { // public constructor public FileReader(File file) throws FileNotFoundException; public FileReader(String filename) throws FileNotFoundException; //... } Info B VL 7: Input/Output p.185
13 Reader und Writer (4) Puffern von Daten bringt Effizienz: Daten werden (in Array) gesammelt und dann weiterverarbeitet. Die Klasse BufferedReader hat eine readline()-methode. Die abstrakten Filter-Klassen FilterReader und FilterWriter erlauben Zusatzfunktionen während des Lesens/Schreibens: z.b. Zählen von Zeichen, Umwandlung von Zeichen etc. Info B VL 7: Input/Output p.186
14 Beispielcode: Copy.java Datei Ströme (1) Klasse File: Konstruktor erzeugt File-Objekt aus String. Achtung bei Pfadnamen: Pfadseparatoren sind vom Betriebssystem abhängig Dateiname kann direkt als String an FileReader übergeben werden, z. B. FileReader(farrago.txt"); FileReader ist ein Datei-Strom. FileReader ist Unterklasse von InputStreamReader: Eine Datei ist eigentlich als Folge von Bytes und nicht von Unicode-Zeichen repräsentiert. Die Klasse FileReader realisiert die Anwendung eines InputStreamReader auf ein InputStream-Objekt! Info B VL 7: Input/Output p.187
15 Datei Ströme (2) mit new FileReader(...) etc. wird die Datei automatisch geöffnet. Dateien können (sollten) explizit geschlossen werden, damit keine Ausgabe im I/O-Puffer verbleibt (flush). Im Prinzip werden Dateien auch vom Garbage Collector geschlossen, wenn nicht mehr auf sie zugegriffen wird. In dem Programm könnte noch eine Abfrage eingebaut werden, ob der Name der Zieldatei verschieden vom Namen der Quelldatei ist (equals() Methode der Klasse File). Info B VL 7: Input/Output p.188
16 Puffern von Daten Beispielcode: BufferDemo.java Beliebige Reader-Objekte können in einen BufferedReader gesteckt werden, also z.b. FileReader-Objekte. (analog für Writer, analog für Byte-Ströme) System.in ist ein InputStream-Objekt! Analog zu BufferedReader in = new BufferedReader(new FileReader(inputFile)); kann natürlich geschrieben werden: FileReader fr = new FileReader(inputFile); BufferedReader in = new BufferedReader(fr); Achtung: bei gepufferten Ausgabe-Strömen muss flush() angewendet werden, damit der Puffer geleert, also damit wirklich geschrieben wird. close() führt automatisch ein flushing aus. Info B VL 7: Input/Output p.189
17 Filter Ströme (1) Die abstrakten Filter-Klassen von java.io erlauben es, beim Lesen und Schreiben zusätzliche Operationen durchzuführen. Die default-implementation der Filter-Klassen leiten die Methodenaufrufe an das bei Konstruktion übergebene Objekt weiter, z.b. übliches read(): Null-Filter. Wird eine Unterklasse einer Filter-Klasse wie FilterInputStream definiert, so können genau die Methoden überschrieben werden, von denen man zusätzliche Funktionalität haben möchte. Die Filter-Klassen entsprechen dem Decorator-Pattern. Der Name kommt ursprünglich aus der GUI-Programmierung (z.b. Fenster mit verschiedener Dekoration), ist aber analog für nicht-visuelle Bereiche definiert. Info B VL 7: Input/Output p.190
18 Filter Ströme (2) Beispielcode: CaseFilter.java, DecoStream.java Die CaseFilter-Klasse implementiert eine erweiterte Funktionalität für read(): Beim Einlesen werden Kleinbuchstaben in Grossbuchstaben umgewandelt. In der Klasse DecoStream wird nun das read() eines CaseFilter-Objekts verwendet. Direkt beim Einlesen wird der Text nun umformatiert! Vergleiche String und + vs. StringBuffer und append(). Info B VL 7: Input/Output p.191
19 Standard IO (1) Auf Betriebssystem-Ebene existieren für jedes laufende Programm drei Ströme: Standard Input, Standard Output und Standard Error. In Java existieren entsprechende Objekte in der System-Klasse: System.in: ist ein InputStream System.out und Systen.err sind bereits in einen PrintStream gepackt (statt OutputStream). Defaultmässig ist Standard Input die Tastatur, Standard Output und Error der Monitor. Die Defaults können über das Betriebssystem, aber auch innerhalb eines Programms (z.b. Java) umdefiniert werden. Info B VL 7: Input/Output p.192
20 Standard IO (2) Statische Methoden in der System-Klasse und die Default-Belegung: setin(inputstream in) setout(printstream out) seterr(printstream err) Im Programmbeispiel BufferDemo wurde gezeigt, wie ein System.in-Objekt in ein Reader-Objekt und dann in ein BufferedReader-Objekt gepackt werden kann. Bereits bekannt ist die Verwendung der Methoden System.out.print() und System.out.println(). Beispiecode: Redirecting.java Info B VL 7: Input/Output p.193
21 IO Exceptions CharConversionException java.lang Exception java.io IOException EOFException FileNotFoundException InterruptedIOException ObjectStreamException SyncFailedException UnsupportedEncodingException UTFDataFormatException InvalidClassException InvalidObjectException NotActiveException NotSerializableException OptionalDataException StreamCorruptedException WriteAbortedException Info B VL 7: Input/Output p.194
22 Random Access RandomAccessFile stammt direkt von Object ab und implementiert die Interfaces DataInput und DataOutput. Die Klasse ermöglicht Lesen und Schreiben sowie das Vorwärts- und Rückwärtsgehen in einer Datei. Sie kann nicht in einen BufferedInputStream o.ä. gepackt werden. Im Prinzip arbeitet die Klasse wie ein kombinierter DataInputStream und DataOutputStream. Typische Anwendung: Effizientes Lesen aus ZIP-Archiv Info B VL 7: Input/Output p.195
23 Sequentieller Zugriff Öffnen des ZIP-Archivs Sequentielle Suche bis das gewünschte File gefunden ist Extraktion des Files Schliessen des ZIP-Archivs Aufwand: im Mittel halbe Länge des ZIP-Files Info B VL 7: Input/Output p.196
24 Random Access Öffnen des ZIP-Archivs Suche des dir-entry und lokalisiere den Eintrag für das gewünschte File Suche rückwärts zur Position des Files Extraktion des Files Schliessen des ZIP-Archivs Info B VL 7: Input/Output p.197
25 Weitere Aspekte StreamTokenizer Serializable Pipe-Ströme Info B VL 7: Input/Output p.198
Programmieren I. Kapitel 15. Ein und Ausgabe
Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random
MehrJava Input/Output System (IO)
Java Input/Output System (IO) Ziel: Schreiben und Lesen von Daten auf sequentielle Medien. Paket: java.io. ab Java 1.4 auch java.nio, hier nicht beru cksichtigt. Trennung in 2 Welten: - Byteorientierte
MehrJava I/O. Input / Output stream Library Regelt I/O über verschiedene Kanäle. Führt notwendige Umwandlungen/Konvertierungen aus
Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus 1 Furchtbar viele Klassen BufferedInputStream
MehrVorlesung Programmieren
Vorlesung 25.01.2007 Wintersemester 2006/2007 Computerlinguistik, Campus DU Überblick Seite 2 Datenströme: Ein und Ausgabe von Daten Java Collections Framework Eingabe/Ausgabe Seite 3 Lesen, Schreiben
MehrProgrammieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 26 Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien 2 / 26 Dateien: Allgemeines Kaum
MehrVorlesung Programmieren. Java I/O: Input und Output mit Java. Ein-/Ausgabe von Daten. Java I/O. Heute. Grundlage fast aller Programme
Vorlesung Programmieren Java I/O Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Java I/O: Input und Output mit Java Heute Ein-/Ausgabe
MehrJava Fehlerbehandlung
Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm
MehrDateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Dateien: Allgemeines 2 Dateien lesen 3 Beispiel: CSV-Daten 4 Filter 5 Ausgabe in Dateien Dateien: Allgemeines Kaum eine
MehrKapitel 12. Programmierkurs. Allgemeine Konzepte Byte-Streams versus Character-Streams
Kapitel 12 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln WS 07/08 Dateiein- und -ausgabe Byte-Streams versus Character-Streams Die abstrakte Klasse Writer FileWriter
MehrUmleitung von Datenströmen
Datenströme Filter und Pipes In UNIX eingeführte Abstraktion beim Datenaustausch Programme arbeiten als Erzeuger und/oder als Verbraucher von Datenströmen ==> Filter Die Erzeuger- und Verbraucherschnittstelle
MehrEin- und Ausgabe in Java
Ein- und Ausgabe in Java Das Package java.io enthält eine Sammlung von Klassen, die die Kommunikation mit dem Computer steuern Einlesen und Ausgeben von Dateien Ausgabe auf dem Bildschirm Einlesen von
MehrEingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien
Eingabe und Ausgabe in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe Beispiel1 public class Input1 { public static void main(string[] args) { for (int i = 0; i < args.length;
MehrProgrammieren in Java
Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang
MehrProgrammieren 2 Selbststudium Semesterwoche 6
Programmieren 2 Selbststudium Semesterwoche 6 1. Datenströme (Basis: Handout PRG2_SW6_OOP) 1. Gehen Sie nochmals die Kontrollfragen A durch. A.1. Ein JavaProgramm liest Daten aus einem???strom. InputStream
MehrKapitel 9. Ein- und Ausgabe. 9.1 Ströme
Kapitel 9 Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über die Kommandozeile und Ausgaben immer durch Aufruf der Methode System.out.println realisiert. Tatsächlich
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät Vorlesung Sommer 2009 Teil I Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über
MehrProgrammieren 2 09 File-IO
Programmieren 2 09 File-IO Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Eingabe und Ausgabe in Java Daten im Programm während der Ausführungszeit:
MehrDr. Monika Meiler. Inhalt
Inhalt 14 Dateiverwaltung, das Stream-Konzept... 14-2 14.1 Datenströme... 14-2 14.1.1 Datenströme in Java, Paket java.io.*... 14-3 14.1.2 Standarddatenströme... 14-4 14.2 Klasse java.io.file... 14-7 14.3
MehrDateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Dr. Klaus Höppner
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 26 Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien 2 / 26 Dateien: Allgemeines Kaum
MehrEinführung zur Aufgabengruppe 2
Einführung zur Aufgabengruppe 2 Alle Literaturhinweise beziehen sich auf die Vorlesung WS 10 Modellierung und Programmierung 1 1 Dateiverwaltung, das Stream-Konzept... 1-2 1.1 Datenströme (s. Kapitel Streams)...
MehrJava Einführung Exception Handling. Kapitel 17
Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf
MehrDynamische Datenstrukturen Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1
Dynamische Datenstrukturen 2006 Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1 Dynamische Datenstrukturen Keine konstante Kardinalität Speicherzuweisung erfolgt während der
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Ströme zur Ein- und Ausgabe Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 44 Ströme zur
MehrVorlesung 11. Sitzung Grundlegende Programmiertechniken
Vorlesung 11. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Datenströme Externe
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 20. Januar 2016 Interface Sets M. Meiler Sortieren der Objekten einer
MehrDateien/Streams. Arthur Zaczek. Okt 2015
Arthur Zaczek Okt 2015 1 Input/Output 1.1 Was ist ein Stream? Figure 1: InputStream Figure 2: OutputStream Graphik: (C) Copyright 1995-2009 Sun Microsystems, Inc. 1.2 Warum streamen? Reduktion des Speicherverbrauchs:
MehrJava I Vorlesung Exceptions
Java I Vorlesung 8 Exceptions 14.6.2004 Exceptions (Ausnahmen) Klassen für Ein- und Ausgabe Ausnahmen Ausnahmen (Exceptions) sind ein Mechanismus zum kontrollierten Melden und Reagieren auf Fehler. Man
MehrEinführung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 14: Sequentielle Ein-/Ausgabe, Streams, Dateiorganisation.
Universität Osnabrück 1 Einführung 3 - Objektorientierte Programmierung in Java Vorlesung 14: Sequentielle Ein-/Ausgabe, Streams, SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Für die Ein- und Ausgabeprogrammierung
MehrSocket-Programmierung unter Java
Datenströme -Programmierung unter Java 1 - Grundlagen: Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer Verwende
MehrJava Schulung. Objektorientierte Programmierung in Java Teil VI: Wichtige Java Pakete. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil VI: Wichtige Java Pakete Prof. Dr. Nikolaus Wulff Java Pakete Für die meisten Aufgaben stellt Java bereits viele nützliche Bibliotheken zur Verfügung:
MehrEinführung in die Informatik Algorithmen und Datenstrukturen. Thema 12 Datenverarbeitung
Einführung in die Informatik Algorithmen und Datenstrukturen Thema 12 Datenverarbeitung Daten - Definitionen Foto? Text? Musik? Video? Zeichnung? Programm? Daten, urspr. svw. geschichtl. Zeitangaben; heute
MehrVorlesung Programmieren
Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen
MehrEinführung in die Informatik Files and Streams
Einführung in die Informatik Files and Streams Arbeiten mit Dateien und Streams Wolfram Burgard Cyrill Stachniss 5.1 Dateien Bisher gingen alle Ausgaben nach Standard output, d.h. auf den Monitor. Der
MehrGrundlegende Java Bibliotheken
Grundlegende Java Bibliotheken 1 Grundlegende Java-Bibliotheken Ein-/Ausgabe Standard-IO, Streams, Files,... Ausnahmebehandlung New IO Character (En)Coding Reflection-Mechanismus, dynamisches Laden von
MehrProgrammieren in Java
Datei-Handling Anonyme Klassen 2 Enums Enums sind eine Aufzählung von int-werten, wobei jedes Element einem bestimmten Namen zugeordnet ist In Java werden Enums über das Schlüsselwort enum definiert und
MehrEin- und Ausgabe mit Java
Ein- und Ausgabe mit Java Michael Wiedau 1 math.- techn. Assistent/Informatik (IHK) 24. Mai 2004 1 wiedau@rz.rwth-aachen.de Inhaltsverzeichnis 1 Streamkonzept in Java 2 1.1 Die Klassenhierarchie.........................
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Java API Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrTelecooperation/RBG. Grundlagen der Informatik 1 Thema 20: Ströme und Ein-/Ausgabe in Java. Dr. Guido Rößling
Technische Universität Darmstadt Telecooperation/RBG Grundlagen der Informatik 1 Thema 20: Ströme und Ein-/Ausgabe in Java Dr. Guido Rößling Copyrighted material; for TUD student use only Inhaltsverzeichnis
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrAusdrucksbäume in verschiedenen Darstellungen
Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c
MehrValidierung. pk12s-19,
Validierung pk12s-19, 24. 5. 2012 1 Validierung von Daten alle von außen kommenden Daten auf Plausibilität prüfen (erscheinen zuverlässig genug um damit weiterzurechnen) klare Regeln nötig, was als plausibel
MehrEinführung in die Informatik
Einführung in die Informatik Klassen Konstruktoren, Methoden, Implementierung, Dateien Wolfram Burgard 3/1 Erzeugen von Objekten Jede Klasse hat wenigstens eine Methode zum Erzeugen von Objekten. Solche
Mehr1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
MehrDie elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.
Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet
MehrInformatik I. Matthias Geel Büro: IFW A Blog:
Informatik I Matthias Geel Büro: IFW A45.2 E-Mail: geel@inf.ethz.ch Blog: http://blogs.ethz.ch/infitet09/ Übersicht 1. Nachbesprechung Übung 5 2. Theorie: Ein- und Ausgabe 3. Vorbesprechung Übung 7 09.11.2009
Mehr2 Die Codierung Sehen wir uns mal den vereinfachten Weg der Informationen von der Tastatur aus bis zum Filesystem an:
Name Klasse Datum 1 Allgemeines Daten werden bekanntermaßen im Computer in einem flüchtigen Speicher, dem RAM verarbeitet. Insofern gehen sie verloren, sobald der Rechner ausgeschaltet wird. Weiterhin
MehrGrundlagen der Programmierung
Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind ausgewählte Teile direkt aus der
MehrProgrammieren 2 10 Binäre und Objekt-IO
Programmieren 2 10 Binäre und Objekt-IO Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Text und Binärdateien Bisher nur mit Textdateien gearbeitet
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 01: Organisation, Wiederholung und File IO Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Organisatorisches Ziele und Aufbau Zielgruppe,
MehrProgrammieren in Java
Programmieren in Java Bearbeitet von Fritz Jobst 3. Auflage 2001. Buch. XVI, 412 S. Hardcover ISBN 978 3 446 21637 2 Format (B x L): 16,9 x 24 cm Gewicht: 788 g Weitere Fachgebiete > EDV, Informatik >
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik
Netzwerk Programmierung Ein großer Teil von dem, was Netzwerkprogramme tun ist ganz simpler input und output: also bytes verschieben von einem System zu einem anderen. Bytes bleiben Bytes. Die Daten zu
MehrString s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:
Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber
MehrInformatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17
Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 16/17 Praktikum zur Vorlesung
MehrKlassenattribute und -methoden, Vererbung
Klassenattribute und -methoden, Vererbung Michael Dienert 27. März 2002 1 Prüfungsaufgabe Anwendungsentwicklung Winter 2001 Die folgende Aufgabe stammt aus der Abschlussprüfung für Fachinformatiker Anwendungsentwicklung
MehrName: Matrikelnr : Aufgabe 1: (ca. 8 Punkte )
Name: Aufgabe 1: (ca. 8 Punkte ) Matrikelnr : In einem Array int a = new int[1000] ; befinden sich 1000 verschiedene Zahlen. Schreiben Sie eine Funktion, die das Array als Parameter übergeben bekommt und
MehrJava I/O, Serialisierung und Netzwerkprogrammierung
Java I/O, Serialisierung und Netzwerkprogrammierung Philipp Güttler 16. Dezember 2009 Universität Ulm, Abt. SGI Progwerkstatt 2 19 Gliederung Java I/O, Serialisierung und Netzwerkprogrammierung 16. Dezember
Mehr13. Funktionale Konzepte in Java
Funktionale vs. Imperative Programmierung 13. Funktionale Konzepte in Java Funktionale Programmierung, Lambda Ausdrücke, Datenströme, Pipelines Imperative Konzepte Ausführen von Anweisungen Zustand (z.b.
MehrKlassen und Objekte. Objekte einer Klasse bilden
Klassen und Objekte SWE-18 Eine Klasse definiert gleichartige Objekte mit ihren Datenelementen (Variable, fields) und Operationen (Methoden) in einer geschlossenen Programmstruktur. Beispiel: class Circles
MehrDr. Monika Meiler. Inhalt
Inhalt 14 Dateiverwaltung, das Stream-Konzept... 14-2 14.1 Datenströme... 14-2 14.1.1 Datenströme in Java, Paket java.io.*... 14-3 14.1.2 Standarddatenströme... 14-4 14.2 Klasse java.io.file... 14-7 14.3
MehrAllgemeine Informatik II SS :30-13:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrGrundlagen der Informatik für Ingenieure I
12. Exceptions.1 12 Exceptions 12 Exceptions Java unterscheidet drei Arten von Ereignissen: Events: Interaktionsereignisse mit dem GUI (siehe Kapitel 10) Errors: Interne schwerwiegende Fehler in der JVM
MehrProgrammieren I und II
Handout zu den Vorlesungen Vorlesung Programmieren I und II Unit 4 Einfache I/O Programmierung Serialisierung von Objekten 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme
MehrUmsetzungshilfe Java Teil 1
Name Klasse Datum 1 Allgemeines In unseren Programmen werden Daten eingegeben, verarbeitet und wieder ausgegeben (EVA-Prinzip). Da wir am Anfang noch keine sehr umfangreichen Programme erstellen, sind
MehrStreams. Programmiermethodik. Eva Zangerle Universität Innsbruck
Streams Programmiermethodik Eva Zangerle Universität Innsbruck Dateien In Java gibt es eine File-Klasse. Liefert Informationen über Dateien und Verzeichnisse. Diese Klasse wurde eingeführt, um Dateioperationen
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden
MehrMusterlösung zum 8. Aufgabenblatt vom Dienstag, den 02. Juni 2009 zur Vorlesung. Informatik B. von Jacob Krause
Musterlösung zum 8. Aufgabenblatt vom Dienstag, den 02. Juni 2009 zur Vorlesung Informatik B von Jacob Krause 1. Rückgeldstückelung Schreiben Sie Pseudocode und ein Java Programm zur Bestimmung des Wechselgeldes
MehrObjektorientierte Programmierung. Kapitel 10: Strings
10. Strings 1/16 Objektorientierte Programmierung Kapitel 10: Strings Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/ 10.
MehrObjektserialisierung
Objektserialisierung SEP 170 Serialisierung von Objekten Umwandlung des Objektzustandes in einen Strom von Bytes, aus dem eine Kopie des Objekts zurückgelesen werden kann. Serialisierung in Java einfacher
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrEin- und Ausgabe. Für die Ein- und Ausgabe von Daten gibt es eine Reihe von Möglichkeiten. Beispiele hierfür sind:
Ein- und Ausgabe Für die Ein- und Ausgabe von Daten gibt es eine Reihe von Möglichkeiten. Beispiele hierfür sind: Eingabe als Parameter auf der Kommandozeile Eingabe über die Tastatur Eingabe aus einer
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrJava Schulung (Java 2 Java Development Kit 5 / 6)
5. Ausnahmebehandlung mit Exceptions 5.1 Auf Laufzeitfehler reagieren Während des Programmablaufs können Fehler auftreten, die zum Zeitpunkt des Kompilierens nicht abzusehen sind (Laufzeitfehler) tritt
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete
Grundlagen der Programmierung Prof. H. Mössenböck 15. Pakete Idee Paket = Sammlung zusammengehöriger Klassen (Bibliothek) Zweck mehr Ordnung in Programme bringen bessere Kontrolle der Zugriffsrechte (wer
MehrDer Datentyp String. Stringvariable und -vergleiche
Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrExceptions: Parameterprüfung import java.io.ioexception;
PPK2 Java Exceptions, Dateien Seite 1 von 31 Exceptions: Parameterprüfung import java.io.ioexception; public class Parameters public static String Methode(String str,exception obj,int index, String[] array)
MehrEin- und Ausgabe (I/O)
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrMusterlösung: Wortstatistik
Musterlösung: Wortstatistik import importjava.io.*; class classwordsstat static staticboolean booleaniswhitespace(char iswhitespace(charc) c) return returnc c == == ' ' ' c c == == '\t' '\t' c c == ==
Mehr12.2 Persistente Objekte
12.2 Persistente Objekte Persistenz im engeren Sinn bedeutet: Langzeitspeicherung für beliebig getypte Objekte Ideal Orthogonale Persistenz : Lebensdauer und Typ von Objekten sind unabhängige Konzepte
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Mehr7. Pakete Grundlagen der Programmierung 1 (Java)
7. Pakete Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 29. November 2005 Einordnung im Kontext der Vorlesung 1.
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrProgrammieren in Java
Programmieren in Java Fehlerbehandlung und Ein- und Ausgabe Titel der Präsentation 2 Fehler = Exceptions? Die Exception- bzw. Ausnahmebehandlung in Java ist eine spezielle Form der Fehlerbehandlung Typischerweise
MehrEinführung in die Informatik Definition von Klassen
Einführung in die Informatik Definition von Klassen Wolfram Burgard Cyrill Stachniss 4.1 Motivation Auch wenn Java ein große Zahl von vordefinierten Klassen und Methoden zur Verfügung stellt, sind dies
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 4
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing.Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 IV. Threads, Audiodateien, Bilder, Datumsfunktion, Aufruf
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrJava Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff
Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.
MehrLiebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren.
Liebe Leserin, lieber Leser, in der ersten Auflage von Programmieren lernen mit Java von Hans- Peter Habelitz sind einige Fehler zu korrigieren. Niemand bedauert diese Fehler mehr als der Autor selbst.
Mehr