Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß
|
|
- Klara Abel
- vor 7 Jahren
- Abrufe
Transkript
1 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011
2 1 Dateien: Allgemeines 2 Dateien lesen 3 Beispiel: CSV-Daten 4 Filter 5 Ausgabe in Dateien
3 Dateien: Allgemeines Kaum eine Anwendung im echten Leben kommt ohne Dateien aus, sei es zum Lesen oder Schreiben (oder beides).
4 Dateien: Allgemeines Kaum eine Anwendung im echten Leben kommt ohne Dateien aus, sei es zum Lesen oder Schreiben (oder beides). Hierbei wird im Wesentlichen zwischen zwei Typen von Dateien unterschieden:
5 Dateien: Allgemeines Kaum eine Anwendung im echten Leben kommt ohne Dateien aus, sei es zum Lesen oder Schreiben (oder beides). Hierbei wird im Wesentlichen zwischen zwei Typen von Dateien unterschieden: Textdateien enthalten lesbaren Text. Diese kann man in einem normalen Editor (notepad, emacs,... ) öffnen, lesen und bearbeiten.
6 Dateien: Allgemeines Kaum eine Anwendung im echten Leben kommt ohne Dateien aus, sei es zum Lesen oder Schreiben (oder beides). Hierbei wird im Wesentlichen zwischen zwei Typen von Dateien unterschieden: Textdateien enthalten lesbaren Text. Diese kann man in einem normalen Editor (notepad, emacs,... ) öffnen, lesen und bearbeiten. Binärdateien enthalten Daten in binärer Form, die nicht zum direkten Lesen durch den Menschen gedacht sind (und zum Teil auch nicht druckbare Zeichen enthalten), sondern zur Verarbeitung durch ein Programm gedacht sind. Beispiele hierfür sind Word-, Excel-Dateien, Grafiken (z. B. GIF, JPG), Musik (z. B. MP3).
7 Was ist eine Datei? In erster Linie ist eine Datei eine Menge von Bytes bzw. Zeichen auf einem Speichermedium, in die man Bytes bzw. Zeichen sequenziell schreiben oder daraus lesen kann.
8 Was ist eine Datei? In erster Linie ist eine Datei eine Menge von Bytes bzw. Zeichen auf einem Speichermedium, in die man Bytes bzw. Zeichen sequenziell schreiben oder daraus lesen kann. Zweitens sind mit einer Datei (je nach Fähigkeiten des Betriebssystems) Eigenschaften wie Dateiname, Zugriffsrechte (teilweise je nach User unterschiedlich) oder Zugriffs-, Modifikationsdatum verbunden.
9 Was ist eine Datei? In erster Linie ist eine Datei eine Menge von Bytes bzw. Zeichen auf einem Speichermedium, in die man Bytes bzw. Zeichen sequenziell schreiben oder daraus lesen kann. Zweitens sind mit einer Datei (je nach Fähigkeiten des Betriebssystems) Eigenschaften wie Dateiname, Zugriffsrechte (teilweise je nach User unterschiedlich) oder Zugriffs-, Modifikationsdatum verbunden. In dieser Vorlesung geht es um den ersten Punkt, also das Schreiben und Lesen von Daten.
10 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung:
11 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung: InputStream stellt rudimentäre Funktionalität zum Lesen von Bytes zur Verfügung.
12 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung: InputStream stellt rudimentäre Funktionalität zum Lesen von Bytes zur Verfügung. Reader stellt rudimentäre Funktionalität zum Lesen von Zeichen zur Verfügung.
13 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung: InputStream stellt rudimentäre Funktionalität zum Lesen von Bytes zur Verfügung. Reader stellt rudimentäre Funktionalität zum Lesen von Zeichen zur Verfügung.
14 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung: InputStream stellt rudimentäre Funktionalität zum Lesen von Bytes zur Verfügung. Reader stellt rudimentäre Funktionalität zum Lesen von Zeichen zur Verfügung. (NB: Dass Lesen von Bytes und Zeichen ein Unterschied ist, liegt daran, dass es in Zeiten von Unicode Zeichen aus mehr als einem Byte bestehen können multi byte characters)
15 Eingabeströme Java stellt zwei einfache, abstrakte Klassen für Eingabeströme zur Verfügung: InputStream stellt rudimentäre Funktionalität zum Lesen von Bytes zur Verfügung. Reader stellt rudimentäre Funktionalität zum Lesen von Zeichen zur Verfügung. (NB: Dass Lesen von Bytes und Zeichen ein Unterschied ist, liegt daran, dass es in Zeiten von Unicode Zeichen aus mehr als einem Byte bestehen können multi byte characters) Diese Sicht auf einen Datenstrom zur Eingabe ist allgemein und nicht nur auf Dateien bezogen. Genauso könnte sich also ein InputStream auf einen String oder eine Socket-Verbindung im Netzwerk beziehen.
16 Methoden von Reader close() Schließen der Datei, implementiert die abstrakte Methode aus dem Interface Closeable.
17 Methoden von Reader close() Schließen der Datei, implementiert die abstrakte Methode aus dem Interface Closeable. read(char cbuf[], int offset, int length) liest in einen Character-Array cbuf ab dem Offset oset eine Menge von length Zeichen. Das Lesen ist blockierend, d. h., wenn weniger Zeichen im Eingabestrom zur Verfügung stehen, wird gewartet (es sei denn, es tritt EOF end of file auf). Rückgabewert: Zahl der gelesenen Zeichen, oder 1 nach EOF Diese Methode ist abstrakt und muss in eigenen Reader-Klassen implementiert werden!
18 Methoden von Reader close() Schließen der Datei, implementiert die abstrakte Methode aus dem Interface Closeable. read(char cbuf[], int offset, int length) liest in einen Character-Array cbuf ab dem Offset oset eine Menge von length Zeichen. Das Lesen ist blockierend, d. h., wenn weniger Zeichen im Eingabestrom zur Verfügung stehen, wird gewartet (es sei denn, es tritt EOF end of file auf). Rückgabewert: Zahl der gelesenen Zeichen, oder 1 nach EOF Diese Methode ist abstrakt und muss in eigenen Reader-Klassen implementiert werden! read(char cbuf[]) Äquivalent zu read(cbuf,0,cbuf.length).
19 Methoden von Reader close() Schließen der Datei, implementiert die abstrakte Methode aus dem Interface Closeable. read(char cbuf[], int offset, int length) liest in einen Character-Array cbuf ab dem Offset oset eine Menge von length Zeichen. Das Lesen ist blockierend, d. h., wenn weniger Zeichen im Eingabestrom zur Verfügung stehen, wird gewartet (es sei denn, es tritt EOF end of file auf). Rückgabewert: Zahl der gelesenen Zeichen, oder 1 nach EOF Diese Methode ist abstrakt und muss in eigenen Reader-Klassen implementiert werden! read(char cbuf[]) Äquivalent zu read(cbuf,0,cbuf.length). read() liest ein Zeichen ein, wobei dieses als int zurückgegeben wird, bzw. 1, falls das Dateiende erreicht wurde.
20 Weitere Readerklassen Die Klasse Reader als abstrakte Klasse stellt die allgemeine Grundfunktionalität zur Verfügung.
21 Weitere Readerklassen Die Klasse Reader als abstrakte Klasse stellt die allgemeine Grundfunktionalität zur Verfügung. Konkrete Implementierungen von Reader sind z. B.: InputStreamReader Dieser Reader macht aus einem Byte-Stream InputStream, der dem Konstruktor übergeben wird, einen Character-Stream. Beispiel: new InputStreamReader(System.in)
22 Weitere Readerklassen Die Klasse Reader als abstrakte Klasse stellt die allgemeine Grundfunktionalität zur Verfügung. Konkrete Implementierungen von Reader sind z. B.: InputStreamReader Dieser Reader macht aus einem Byte-Stream InputStream, der dem Konstruktor übergeben wird, einen Character-Stream. Beispiel: new InputStreamReader(System.in) FileReader Dieser Reader liest aus einer Datei auf einem Speichermedium (z. B. Festplatte): new FileReader("daten.txt")
23 Weitere Readerklassen (Forts.) Im Prinzip reicht die Klasse FileReader völlig aus, um aus einer Datei lesen zu können... es ist nur sehr unbequem, dies zeichenweise tun zu müssen.
24 Weitere Readerklassen (Forts.) Im Prinzip reicht die Klasse FileReader völlig aus, um aus einer Datei lesen zu können... es ist nur sehr unbequem, dies zeichenweise tun zu müssen. Beim Lesen von Text-Dateien will man meist zeilenweise lesen. Dies kann mit mit der Klasse BueredReader geleistet werden. BueredReader ist ein High-Level-Reader, der einen anderen Reader um die Möglichkeit bereichern kann, eine Zeile als String einzulesen. Hierfür dient dann die Methode String readline().
25 Beispiel: Eingabe von der Tastatur import java. i o. * ; p u b l i c c l a s s App { p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { BufferedReader in = new BufferedReader ( new InputStreamReader ( System. in ) ) ; } } try { S t r i n g z e i l e = in. readline ( ) ; } catch ( IOException e ) { e. printstacktrace ( ) ; }
26 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich:
27 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich: System.in ist ein allgemeiner InputStream, aus dem Bytes gelesen werden können,
28 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich: System.in ist ein allgemeiner InputStream, aus dem Bytes gelesen werden können, InputStreamReader macht aus diesem Stream einen Low-Level-Reader, aus dem eine Menge von Zeichen gelesen werden kann,
29 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich: System.in ist ein allgemeiner InputStream, aus dem Bytes gelesen werden können, InputStreamReader macht aus diesem Stream einen Low-Level-Reader, aus dem eine Menge von Zeichen gelesen werden kann, BueredReader dekoriert diesen Low-Level-Reader mit einem High-Level-Reader, der dann zeilenweises Einlesen erlaubt.
30 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich: System.in ist ein allgemeiner InputStream, aus dem Bytes gelesen werden können, InputStreamReader macht aus diesem Stream einen Low-Level-Reader, aus dem eine Menge von Zeichen gelesen werden kann, BueredReader dekoriert diesen Low-Level-Reader mit einem High-Level-Reader, der dann zeilenweises Einlesen erlaubt.
31 Analyse Am vorigen Beispiel wird das Konzept der Stream- und Reader-Klassen in Java mit einer Trennung in Low-Level- und High-Level-Klassen deutlich: System.in ist ein allgemeiner InputStream, aus dem Bytes gelesen werden können, InputStreamReader macht aus diesem Stream einen Low-Level-Reader, aus dem eine Menge von Zeichen gelesen werden kann, BueredReader dekoriert diesen Low-Level-Reader mit einem High-Level-Reader, der dann zeilenweises Einlesen erlaubt. Hierdurch wird eine Trennung zwischen Datenquelle und der Art des Lesens erreicht. Die Physik (Lesen von der Platte, von einem Socket,... ) steckt im Low-Level-Reader, der Komfort dann im High-Level-Reader.
32 Beispiel: Eingabe aus einer Datei Das Lesen aus einer Datei ist nun fast identisch (außer, dass man die FileNotFoundException abfangen muss): import java. i o. * ; p u b l i c c l a s s App { p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { BufferedReader i n ; try { i n = new BufferedReader ( new FileReader ( " daten. txt " ) ) ; S t r i n g z e i l e = in. readline ( ) ; System. out. p r i n t l n ( z e i l e ) ; } catch ( FileNotFoundException e ) { e. printstacktrace ( ) ; } catch ( IOException e ) { e. printstacktrace ( ) ; } } }
33 Beispiel: Lesen von CSV-Daten Für ein komplexeres Beispiel zum Lesen aus Dateien betrachten wir eine Klasse Adresse, die als Attribute Vor- und Nachname, Straße, PLZ und Ort besitzt: p u b l i c c l a s s Adresse { p r i v a t e S t r i n g vorname ; p r i v a t e S t r i n g nachname ; p r i v a t e S t r i n g s t r a s s e ; p r i v a t e S t r i n g p l z ; p r i v a t e S t r i n g o r t ; p u b l i c Adresse ( S t r i n g vorname, S t r i n g nachname, S t r i n g s t r a s s e, S t r i n g plz, S t r i n g o r t ) { t h i s. vorname = vorname ; t h i s. nachname = nachname ; t h i s. s t r a s s e = s t r a s s e ; t h i s. p l z = p l z ; t h i s. o r t = o r t ; }
34 Beispiel: Lesen von CSV-Daten (Forts.) } p u b l i c S t r i n g getnachname ( ) { return nachname ; } p u b l i c S t r i n g getort ( ) { return o r t ; } p u b l i c S t r i n g getplz ( ) { return p l z ; } p u b l i c S t r i n g g e t S t r a s s e ( ) { return s t r a s s e ; } p u b l i c S t r i n g getvorname ( ) { return vorname ; }
35 Problemstellung Tabellen-artige Daten wie Adressen werden häufig in Form von comma separated values (CSV) in Text-Dateien gespeichert. Die können dann z. B. einfach von einer Tabellenkalkulation wie Excel verarbeitet werden.
36 Problemstellung Tabellen-artige Daten wie Adressen werden häufig in Form von comma separated values (CSV) in Text-Dateien gespeichert. Die können dann z. B. einfach von einer Tabellenkalkulation wie Excel verarbeitet werden. Beispiel für eine CSV-Datei: Karl;Mueller;Rosenstr. 7;12345;Rosendorf Erich;Mustermann;Musterweg 1;90000;Bad Homburg Angelika;Schmidt;Annastr. 23;22457;Hamburg Thomas;von Sokolowski;Rheinstr. 5;64283;Darmstadt Typisch ist, dass die Felder durch ein Zeichen separiert werden, das im Feldinhalt typischer Weise nicht vorkommt (z. B ; oder ).
37 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden.
38 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden. Diese Methode muss also:
39 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden. Diese Methode muss also: eine Datei zum Lesen öffnen und mit einem BueredReader dekorieren,
40 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden. Diese Methode muss also: eine Datei zum Lesen öffnen und mit einem BueredReader dekorieren, jede Zeile der Datei in einzelne Felder aufsplitten,
41 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden. Diese Methode muss also: eine Datei zum Lesen öffnen und mit einem BueredReader dekorieren, jede Zeile der Datei in einzelne Felder aufsplitten, den Konstruktor von Adresse mit diesen Daten aufrufen,
42 Problemstellung (Forts.) Zum Einlesen von Adressdaten im CSV-Format soll der Klasse Adresse nun eine neue statische Methode Adresse[] parse(string dateiname) hinzu gefügt werden. Diese Methode muss also: eine Datei zum Lesen öffnen und mit einem BueredReader dekorieren, jede Zeile der Datei in einzelne Felder aufsplitten, den Konstruktor von Adresse mit diesen Daten aufrufen, die Adressen in einen Array packen und zurück geben.
43 Implementierung von parse p u b l i c s t a t i c Adresse [ ] parse ( S t r i n g dateiname ) { ArrayList <Adresse> temp = new ArrayList <Adresse >(); try { BufferedReader i n = new BufferedReader ( new FileReader ( dateiname ) ) ; S t r i n g z e i l e ; while ( ( z e i l e=in. readline ( ) )!= n u l l ) { S t r i n g [ ] items = z e i l e. s p l i t ( " ; " ) ; temp. add (new Adresse ( items [ 0 ], items [ 1 ], items [ 2 ], items [ 3 ], items [ 4 ] ) ) ; } } catch ( FileNotFoundException e ) { System. e r r. p r i n t l n ( "Kann Datei "+dateiname+" n i c h t ö f f n } catch ( IOException e ) { System. e r r. p r i n t l n ( " L e s e f e h l e r " ) ; } System. out. p r i n t l n ( temp. s i z e ()+" Adressen e i n g e l e s e n " ) ; return temp. toarray (new Adresse [ 0 ] ) ; }
44 Zwischenfilter Ein weiterer Vorteil des Konzepts mit Low-Level-Streams und diese dekorierenden High-Level-Streams liegt darin, dass man nach Wunsch Zwischen-Filter einbauen kann.
45 Zwischenfilter Ein weiterer Vorteil des Konzepts mit Low-Level-Streams und diese dekorierenden High-Level-Streams liegt darin, dass man nach Wunsch Zwischen-Filter einbauen kann. Diese können transparent Ein- und Ausgabeströme manipulieren. Beispielsweise könnte man so erreichen, dass Daten beim Schreiben verschlüsselt und beim Lesen entschlüsselt werden, ohne dass die Anwendung dies merkt, weil dieser Prozess als Filter zwischen Low- und High-Level-Stream bzw. -Reader geschaltet ist.
46 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt.
47 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt. Hierfür wird: eine neue Kindklasse von Reader definiert,
48 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt. Hierfür wird: eine neue Kindklasse von Reader definiert, diese dekoriert einen anderen Reader, der dem Konstruktor als Referenz übergeben wird,
49 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt. Hierfür wird: eine neue Kindklasse von Reader definiert, diese dekoriert einen anderen Reader, der dem Konstruktor als Referenz übergeben wird, die abstrakten Methoden read(char [], int, int) und close () aus Reader implementiert,
50 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt. Hierfür wird: eine neue Kindklasse von Reader definiert, diese dekoriert einen anderen Reader, der dem Konstruktor als Referenz übergeben wird, die abstrakten Methoden read(char [], int, int) und close () aus Reader implementiert, wobei die Implementierung jeweils auf die entsprechenden Methoden aus dem dekorierten Reader zurück greift,
51 Implementierung eines Filters Als kleines Beispiel soll ein Inputfilter implementiert werden, der alle eingelesenen Zeichen in Großbuchstaben umwandelt. Hierfür wird: eine neue Kindklasse von Reader definiert, diese dekoriert einen anderen Reader, der dem Konstruktor als Referenz übergeben wird, die abstrakten Methoden read(char [], int, int) und close () aus Reader implementiert, wobei die Implementierung jeweils auf die entsprechenden Methoden aus dem dekorierten Reader zurück greift, aber beim read (...) die eingelesenen Zeichen manipulieren kann.
52 Beispiel p u b l i c c l a s s UpperInputReader extends Reader { p r i v a t e Reader in ; p u b l i c UpperInputReader ( Reader in ) { t h i s. in = in ; p u b l i c i n t read ( char [ ] cbuf, i n t o f f s e t, i n t length ) thro i n t count = super. read ( cbuf, o f f s e t, length ) ; f o r ( i n t i=o f f s e t ; i<o f f s e t+count ; i++) { cbuf [ i ] = Character. touppercase ( cbuf [ i ] ) ; } return count ; p u b l i c void c l o s e ( ) throws IOException { super. c l o s e ( ) ; } }
53 Anwendung Mit diesem Filter kann man nun einfach benutzen, um ganz transparent alle von der Tastatur gelesenen Zeichen als Großbuchstaben zu lesen: p u b l i c c l a s s App { p u b l i c s t a t i c void main ( S t r i n g [ ] args ) throws IOException BufferedReader i n = new BufferedReader ( new UpperInputReader ( new InputStreamReader ( System. in ) ) ) ; S t r i n g z e i l e = in. readline ( ) ; } } System. out. p r i n t l n ( z e i l e ) ;
54 Die Klasse FilterReader Zur Vereinfachung des Schreibens von Filtern gibt es die Klasse FilterReader, die einen dem Konstruktor als Referenz übergebenen Reader dekoriert. Hierbei sind alle Methoden von Reader so implementiert, dass sie für den dekorierten Reader ausgeführt werden.
55 Die Klasse FilterReader Zur Vereinfachung des Schreibens von Filtern gibt es die Klasse FilterReader, die einen dem Konstruktor als Referenz übergebenen Reader dekoriert. Hierbei sind alle Methoden von Reader so implementiert, dass sie für den dekorierten Reader ausgeführt werden. Diese Klasse FilterReader ist dazu gedacht, dass eigene Filterklassen von dieser erben und dort einzelne Methoden überladen, um eine Manipulation des Eingabestroms zu erreichen.
56 Neue Version von UpperInputReader p u b l i c c l a s s UpperInputReader extends F i l t e r R e a d e r { p u b l i c UpperInputReader ( Reader in ) { super ( in ) ; } p u b l i c i n t read ( char [ ] cbuf, i n t o f f s e t, i n t length ) throws IOException { i n t count = super. read ( cbuf, o f f s e t, length ) ; f o r ( i n t i=o f f s e t ; i<o f f s e t+count ; i++) { cbuf [ i ] = Character. touppercase ( cbuf [ i ] ) ; } return count ; }
57 Ausgabe in Dateien Allgemeines Das Konzept der Ausgabe in Java ist analog zur Eingabe: Es gibt abstrakte Klassen OutputStream und Writer mit der Grundfunktionalität zum Schreiben von Bytes bzw. Zeichen.
58 Ausgabe in Dateien Allgemeines Das Konzept der Ausgabe in Java ist analog zur Eingabe: Es gibt abstrakte Klassen OutputStream und Writer mit der Grundfunktionalität zum Schreiben von Bytes bzw. Zeichen. Low-Level-Klassen sorgen dafür, dass die abstrakten Methoden implementiert werden. Bei Dateien sind dies FileOutputStream und FileWriter,
59 Ausgabe in Dateien Allgemeines Das Konzept der Ausgabe in Java ist analog zur Eingabe: Es gibt abstrakte Klassen OutputStream und Writer mit der Grundfunktionalität zum Schreiben von Bytes bzw. Zeichen. Low-Level-Klassen sorgen dafür, dass die abstrakten Methoden implementiert werden. Bei Dateien sind dies FileOutputStream und FileWriter, High-Level-Klassen erweitern die Grundfunktionalität,
60 Ausgabe in Dateien Allgemeines Das Konzept der Ausgabe in Java ist analog zur Eingabe: Es gibt abstrakte Klassen OutputStream und Writer mit der Grundfunktionalität zum Schreiben von Bytes bzw. Zeichen. Low-Level-Klassen sorgen dafür, dass die abstrakten Methoden implementiert werden. Bei Dateien sind dies FileOutputStream und FileWriter, High-Level-Klassen erweitern die Grundfunktionalität, OutputStreamWriter dient als Brücke, um aus einem Byte-Ausgabestrom einen Character-Ausgabestrom in Form eines Writers zu machen.
61 (aus: Friedrich Esser, Java 2 Designmuster und Zertifizierungswissen, Galileo Computing) Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien Schaubild: Reader- und Writer-Klassen
62 BueredWriter und PrintWriter Im Allgemeinen wird man einen Writer mit einer der Klassen BueredWriter oder PrintWriter dekorieren.
63 BueredWriter und PrintWriter Im Allgemeinen wird man einen Writer mit einer der Klassen BueredWriter oder PrintWriter dekorieren. Diese bieten insbesondere die Möglichkeit, mit der Methode println (...) zeilenweise Daten auszugeben. PrintWriter ermöglicht zusätzlich mit der Methode format (...) eine formatierte Ausgabe.
64 Beispiel import java. i o. * ; import java. math. * ; p u b l i c c l a s s App { p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { try { PrintWriter out = new PrintWriter ( new F i l e W r i t e r ( " daten. txt " ) ) ; f o r ( double x=0; x<1; x+=.01) { out. format ( "%8.2 f %8.2 f \n", x, Math. s i n ( x ) ) ; } } } out. c l o s e ( ) ; } catch ( IOException e ) { e. printstacktrace ( ) ; }
Programmieren 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
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
Mehrjava.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation
java.io Ziel Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Ressourcen Java Tutorial Java API Dokumentation Page 1 Java API Prinzip Java IO-API ist für eine allgemeine
MehrHandbuch konsultieren!
Zeichenketten Klasse String Enthält zahlreiche Methoden z.b.: int length(): Anzahl der Zeichen in Zeichenkette String substring(int start): Unterzeichenkette ab Position start boolean equalsignorecase(string
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;
MehrAusnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Ausnahmen Zentralübung zur Vorlesung http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arten von Fehlern Auslösen von Ausnahmen Vermeiden von Ausnahmen Ausnahmeklassen
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
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 02: Streams filtern Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader Praxis:
MehrAusnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler
MehrInfo B VL 7: Input/Output
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 Exkurs:
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Streams Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Ein-Ausgabe 2 Klassenhierarchie (Byteorientiert) 3 Klassenhierarchie
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
MehrAusnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:
MehrStreams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI
Ein- Ausgabe Streams Unterlagen zum Modul "OOP mit Java" V 3.0 2011 by WBR1&MOU2/BFH-TI Ein- Ausgabe, Streams V3.0 2011 by WBR1&MOU2/BFH-TI Definition: Berner Fachhochschule Streams Ein Stream ist eine
MehrAbschnitt 18: Beispiel: I/O-Streams
Abschnitt 18: Beispiel: I/O-Streams 18. Beispiel: I/O-Streams 18.1 Eingabe/Ausgabe 18.2 Dateien 18.3 Streams 18.4 Lesen: Inputstreams, Reader 18.5 Schreiben: Outputstreams, Writer 18.6 I/O Ausnahmen 18
MehrAnalyse und Modellierung von Informationssystemen
Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 28 Strukturmuster Kompositum Dekorierer Adapter 2 / 28 Einführung: Strukturmuster Zu
MehrArten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)
Datenströme Arten von Streams Daten 0 1 1 0 1 0 1 0 Java Programm Bytes (8-Bits) Daten 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 Java Programm Characters (16 - Bits) Byteströme(InputStream/OutputStream) I Java Programm
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
MehrStreams. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java
Streams Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 4.7.07 G. Bohlender (IANM UNI Karlsruhe) Streams 4.7.07 1 / 7 Übersicht 1 Einführung
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
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
MehrAusnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung
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
MehrDatenströme in Java. Zeichenkonvertierung
Datenströme in Java Arten von Strömen Ein- und Ausgabeoperationen sind in Java im Wesentlichen über Datenströme realisiert. Dabei werden zwei Arten von Datenströmen unterschieden; byteorientierte Ströme
MehrVorlesung Programmieren
Vorlesung Programmieren Java I/O Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Java I/O: Input und Output mit Java Heute Ein-/Ausgabe
MehrAusnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative
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
MehrAusnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung
Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung
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
MehrGrundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Datei! Das Problem!
Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2014/2015 Ziele dieses Kapitels Sie verstehen das Konzept der Ströme Sie können Klassen wie Reader, Writer,
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
MehrClient-Server TCP/IP - Kodierung
Client-Server TCP/IP - Kodierung Die Socketklassen Ein Socket (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination
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
MehrJAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme
JAVA für Einsteiger Streams und Dateien eden market Autor: Norman Lahme 1 Gliederung 1. Einleitung 2. Bildschirmausgabe und Tastatureingabe 3. Laden und Speichern von Tex ten 4. Laden und Speichern von
MehrVerteilte Systeme - Java Networking (Sockets) 2 -
Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 27. Januar 2016 Lesen und Schreiben von Zeichen Reader read(); close();
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:
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
MehrAusnahmen und IO. Fehler, Ausnahmen, Java- Exception, throw, catch, Ströme, Puffer, Dateien lesen, schreiben, Tastatur, Terminal, HTTP
Ausnahmen und IO Fehler, Ausnahmen, Java- Exception, throw, catch, Ströme, Puffer, Dateien lesen, schreiben, Tastatur, Terminal, HTTP Fehler - Ausnahmen Fehler Fehler :: Unreparierbares Unreparierbares
Mehrhigh level I/O/ low level I/O
Dateiarbeit in C Datei(engl. File) ist ein Menge von Daten (Bytes) auf einem geeigneten Datenträger. Festplatte USB-Stick Früher: Magnetband, Lochband, Lochkartenstapel, Diskette Eine Datei enthält Daten
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
MehrJava Einführung IO (Eingabe/Ausgabe)
Java Einführung IO (Eingabe/Ausgabe) Inhalt dieser Einheit Ein-/Ausgabe: Arbeiten mit Verzeichnissen und Dateien Schreiben und Lesen von Dateien bzw. Datenströmen Fehlerbehandlung beim Schreiben und Lesen
MehrWie schreibt bzw. wie liest man die beiden unterschiedlichen Darstellungen?
Problem 2: Wie schreibt bzw. wie liest man die beiden unterschiedlichen Darstellungen? Dazu stellt Java im Paket Ú º Ó eine Vielzahl von Klassen zur Verfügung... 15.1 Byteweise Ein- und Ausgabe Zuerst
MehrEinführung in die OOP mit Java Character-Streams Gliederung
Hochschule für Angewandte Wissenschaften Hamburg Hamburg University of Applied Sciences Einführung in die OOP mit Java Character-Streams Christian Dreyer 03.11.2008 Character-Streams 1 Gliederung Begriffsklärung
MehrGrundlagen der Programmierung. Kapitel 10: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei
Ziele dieses Kapitels Grundlagen der ierung Dr. Christian Herzog Technische Universität München! Sie verstehen das Konzept der Ströme Sie können n wie,, Input und Output benutzen.! Sie können in Java Dateien
MehrGrundlagen der Programmierung. Kapitel 11: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei
Ziele dieses Kapitels Grundlagen der ierung Dr. Christian Herzog Technische Universität München! Sie verstehen das Konzept der Ströme Sie können n wie,, Input und Output benutzen.! Sie können in Java Dateien
MehrGrundlagen der Programmierung. Kapitel 11: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei
Ziele dieses Kapitels Grundlagen der ierung Dr. Christian Herzog Technische Universität München! Sie verstehen das Konzept der Ströme Sie können n wie,, Input und Output benutzen.! Sie können in Java Dateien
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
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrProgrammieren 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 Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.
Java Übung Übung 3 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 2. Mai 2006 (UniDUE) 2. Mai 2006 1 / 17 Aufgabe 1 Umwandeln von do while in for Schleife. Listing 1: aufgabe3 1.java 1 public
MehrStreams. Thomas Schwotzer
Streams Thomas Schwotzer 1 Einführung Wir haben uns mit abstrakten Klassen beschäftigt. Ganz generell ist das Konzept der Abstraktion ein grundsätzliches in der Informatik. Wir ITler bauen Software-Maschinen.
MehrObjektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer
Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;
MehrAusnahmebehandlung PK11W-16,
Ausnahmebehandlung PK11W-16, 05. 12. 2011 1 Laufzeitfehler weitere Ausführung unmöglich Ausnahme geworfen Beispiele: ArrayIndexOutOfBoundsException NullPointerException ArithmeticException AssertionError
MehrInstitut für Programmierung und Reaktive Systeme 10. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 10. Mai 2013 Programmieren II 11. Übungsblatt Hinweis: Dieses Übungsblatt enthält die zweite Pflichtaufgabe.
MehrGrundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Das Problem! Datei!
Ziele dieses Kapitels! Grundlagen der Programmierung! Dr. Christian Herzog! Technische Universität München!!" Sie verstehen das Konzept der Ströme! " Sie können Klassen wie Reader, Writer, InputStream
MehrClient-Server TCP/IP - Kodierung
Client-Server TCP/IP - Kodierung Die klassen Ein (engl. Sockel) ist eine bidirektionale Netzwerk-Kommunikationsschnittstelle, deren Verwaltung das Betriebssystem übernimmt. Die Kombination aus IP-Adresse
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrGrundlagen der Objektorientierten Programmierung - Ein- / Ausgabe-Streams
Java-API: Stream-Klassen Die API-Bibliothek java.io bietet zahlreiche Stream-Klassen mit vielen Ein- und Ausgabefunktionen, mit deren Hilfe alle denkbaren Arten von Datenübertragungen und -konvertierungen
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
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrBeispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme
Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrKapitel 15: Ausnahmen und
Kapitel 15: Ausnahmen und Ein-/Ausgabe Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 02: Streams filtern, Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader 2.
MehrDateien, Streams. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.
Dateien, Streams INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Informationsaustausch Programme tauschen Information mit Umgebung über - Kommandozeilen Argumente -
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23
Kapitel 16 Datei Aus- und Eingabe Seite 1 von 23 Datei Aus- und Eingabe - Für die Ausgabe auf Dateien und die Eingabe von Dateien werden die Streams ofstream und ifstream verwendet. - Sie sind in der Bibliothek
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
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
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
MehrVerteilte Systeme - Java Networking (Sockets) -
Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP
Mehr8. Arbeiten mit Dateien
8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den
MehrProgrammieren 2 09 File-IO
Programmieren 2 09 File-IO Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Eingabe und Ausgabe in Java Daten im Programm während der Ausführungszeit:
MehrSocket-Programmierung unter Java
Socket-Programmierung unter Java 1 - Grundlagen: Datenströme Datenströme JAVA unterscheidet Streams und Reader/Writer Zur Dateneingabe: InputStream oder Reader Zur Datenausgabe: OutputStream oder Writer
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Die Klassenhierarchie der Exceptions (Ausschnitt) Throwable Error Exception... RuntimeException IOException ParseException...
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
Mehr3.11 Ausnahmen und Ein-/Ausgabe
3.11 Ausnahmen und Ein-/Ausgabe Wir werden uns in diesem Kapitel näher mit Ausnahmen und Ein-/Ausgabe in Java beschäftigen. Praktische Informatik I Wolfgang 3. Die Programmiersprache Java 3.11-1 Übersicht
MehrEin- und Ausgabe. Algorithmen und Datenstrukturen II 1
Ein- und Ausgabe Algorithmen und Datenstrukturen II 1 In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über die Kommandozeile und Ausgaben immer durch Aufruf der Methode System.out.println
MehrProgrammiertechnik Ausnahmen
Programmiertechnik Ausnahmen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation public class Excep1 { public void doyourjob() { Scanner scanner = new Scanner(System.in); System.out.print("a:
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
MehrAlgorithmen und Programmierung III
Musterlösung zum 4. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Amortisierte Analyse 10 Punkte Zu erst betrachte ich wie oft die letzte Ziffer
MehrAutoboxing - Nachtrag
Autoboxing - Nachtrag Mit dem Autoboxing ist eine Reihe von Unregelmässigkeiten verbunden, die der Programmierer beachten muss, um Fehler zu vermeiden. aus: Christian Ullenboom Java ist auch eine Insel
Mehrhue13 January 30, 2017
hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrProf. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Ausnahmen Motivation Anwendungsbeispiel 1: java Excep1 a: 15 b: 3 a / b = 5 Job done. Konsole Anwendungsbeispiel 2: Konsole java
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrÜbung Informatik I - Programmierung - Blatt 6
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.
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:
MehrBetriebssysteme. Wintersemester Kapitel 4 Ein- / Ausgabe und Dateisysteme. Patrick Kendzo
Betriebssysteme Wintersemester 2013 Kapitel 4 Ein- / Ausgabe und Dateisysteme Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Ein- / Ausgabe und Dateisysteme
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
MehrPROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker
I/O-Serialisierung und Multithreading PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Dr.-Ing. Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 27. Mai 2013 Übersicht
Mehr3. Grundlegende Sprachkonstruktionen imperativer Programme
3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte
Mehr