Vorlesung Informatik II
|
|
- Sebastian Kalb
- vor 5 Jahren
- Abrufe
Transkript
1 Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 14. Java - Datenhaltung 2: Textdateien und Objektserialisierung 1
2 Ein-/Ausgabe mit Text Speichern als Text Man überlege sich ein Textformat zur Abspeicherung der durch Objekte und Assoziationen repräsentierten Daten und schreibe den Text in eine Textdatei beim Laden müssen die Objekte rekonstruierbar sein: Benutze Trennzeichen zwischen Attributwerten 2
3 Ein-/Ausgabe mit Text Speichern als Text Man überlege sich ein Textformat zur Abspeicherung der durch Objekte und Assoziationen repräsentierten Daten und schreibe den Text in eine Textdatei Auf die Daten kann nur durch einen Benutzer zugegriffen werden Daten müssen komplett in den Arbeitsspeicher passen Speicherung kann beliebig oft während einer Sitzung erfolgen. Änderungen zwischen zwei Speicherungen gehen bei Systemausfall verloren Kann von Programmen, denen das Format bekannt ist, interpretiert werden 3
4 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Die Java API stellt Klassen zur Verfügung zur Repräsentation von Textdateien zur Repräsentation von Datenströmen ( Dateien zur Repräsentation von Dialogen (Auswahl von 4
5 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Byte-Datenströme: Laden byte x = ds.read() Byte-Datenstrom ds Datei 1 Byte 5
6 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Byte-Datenströme: Speichern byte b =...; ds.write(b) Byte-Datenstrom ds Datei 1 Byte 6
7 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Zeichen-Datenströme: Laden char x = ds.read() red Dekodierung Byte Zeichen-Datenstrom ds Datei 7
8 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Zeichen-Datenströme: Speichern char x =...; ds.write(x) red Kodierung Byte Zeichen-Datenstrom ds Datei 8
9 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Datenströme hintereinanderschalten: Laden char x = ds.read() red Dekodierung Zeichen-Datenstrom ds Byte-Datenstrom (Speichern analog umgekehrt) 9
10 Ein-/Ausgabe mit Text Zum Speichern und Laden von Text benutzt man Datenströme Gepufferte Datenströme: Laden String x = ds.readln() D i e \n D e r n \ D e r Gepufferter Datenstrom ds Zeichen-Datenstrom (Speichern analog umgekehrt) 10
11 Ein-/Ausgabe mit Text Dateiauswahl über vordefinierte Dialogklasse FileDialog Modales Dialog-Fenster für Auswahl/Generierung einer Datei Konstruktor public FileDialog(Frame parent, String title, int ( mode Parameter mode Werte: FileDialog.LOAD, FileDialog.SAVE 11
12 Ein-/Ausgabe mit Text Dateiauswahl über vordefinierte Dialogklasse FileDialog Modales Dialog-Fenster für Auswahl/Generierung einer Datei Methoden: Setzen/Lesen von Pfad und Datei (siehe API) String getfile() Gibt Dateinamen zurück (ohne Pfad), falls Datei ausgewählt Gibt null zurück, falls keine Datei gewählt oder abgebrochen String getdirectory() Gibt Pfad der ausgewählten Datei zurück 12
13 Ein-/Ausgabe mit Text Dateiauswahl über vordefinierte Dialogklasse FileDialog Beispiel Speichern (Code Teil der Ereignisbehandlung in einem Fenster): FileDialog fd = new FileDialog(this,"Speichern unter", FileDialog.SAVE); fd.setvisible(true); if (fd.getfile()!=null){ try{ File f = new File(fd.getDirectory()+fd.getFile());... } 13
14 Ein-/Ausgabe mit Text Java-interne Repräsentation einer Datei mit Klasse File Repräsentation von Dateien und Ordnern Erfordert Import des java.io Pakets Konstruktor (keine physikalische Datei, sondern nur Java-Objekt!) File(String filename) Parameter filename unveränderlicher Dateiname mit absolutem Pfad oder Pfad relativ zum Projektordner Syntax ist Systemabhängig! (API lesen) 14
15 Ein-/Ausgabe mit Text Java-interne Repräsentation einer Datei mit Klasse File Repräsentation von Dateien und Ordnern Erfordert Import des java.io Pakets Methoden boolean exists() Gibt true zurück, falls Datei physikalisch existiert boolean isdirectory(): Gibt true zurück, falls Datei physikalisch existiert und einen Ordner repräsentiert 15
16 Ein-/Ausgabe mit Text Java-interne Repräsentation einer Datei mit Klasse File Repräsentation von Dateien und Ordnern Erfordert Import des java.io Pakets Methoden String getname() gibt Dateiname zurück (ohne Pfad) String getabsolutepath() gibt Dateiname zurück mit absolutem Pfad String[] list(): gibt Datei- und Ordnernamen in einem Ordner zurück (oder null) 16
17 Ein-/Ausgabe mit Text Java-interne Repräsentation einer Datei mit Klasse File Repräsentation von Dateien und Ordnern Erfordert Import des java.io Pakets Methoden File[] listfiles() gibt File-Objekte in einem Ordner zurück (oder null) String getfiletype() gibt Endung )einschließlich. ) zurück 17
18 Ein-/Ausgabe mit Text Java-interne Repräsentation einer Datei mit Klasse File Beispiel Speichern (Fortsetzung) (Code Teil der Ereignisbehandlung in einem Fenster): try{ File f = new File(fd.getDirectory()+fd.getFile()); PrintWriter p = new PrintWriter( new OutputStreamWriter( new FileOutputStream(f))); Iterator it = <DatenContainer>.iterator(); while(it.hasnext()){ p.println("neu");... 18
19 Ein-/Ausgabe mit Text Schreiben in physikalische Datei über Ausgabe-Datenströme Zum Schreiben von Bytes, Zeichen oder Zeilen in Dateien Datenströme bilden Vererbungshierarchie OutputStream FileOutputStream FilterOutputStream ObjectOutputStream BufferedOutputStream PrintStream DataOutputStream
20 Ein-/Ausgabe mit Text Klasse FileOutputStream Zum Schreiben einzelner Bytes in eine Datei (z.b. für Bilddateien) Konstruktor: public FileOutputStream(File file) throws FileNotFoundException Stellt Verbindung zu Datei her; Datei wird ggf. kreiert Ausnahme, falls - Datei existiert, aber ein Ordner ist - Datei nicht existiert und nicht kreiert werden kann - Datei existiert und nicht geöffnet werden kann
21 Ein-/Ausgabe mit Text Klasse FileOutputStream Zum Schreiben einzelner Bytes in eine Datei (z.b. für Bilddateien) Methoden: void write(byte[] b) throws IOException Schreibt Bytes void close() throws IOException Leert den Strom, schließt den Strom, gibt Resourcen frei Achtung: ohne close gehen Ausgabedaten verloren! u.v.m.
22 Ein-/Ausgabe mit Text Klasse ObjectOutputStream Für Objektserialisierung später Klasse PrintStream Methoden werfen keine Ausnahmen Der Standard-Ausgabestrom ist von diesem Typ
23 Ein-/Ausgabe mit Text Schreiben in physikalische Datei über Ausgabe-Datenschreiber Zum formatierten Schreiben von Zeichen in Dateien Datenschreiber bilden Vererbungshierarchie Writer OutputStreamWriter BufferedWriter PrintWriter
24 Ein-/Ausgabe mit Text Klasse OutputStreamWriter Zum Umwandeln von Zeichen in Bytes bzgl. einer Codierung Konstruktor: public OutputStreamWriter(OutputStream out) Umwandlung nach Standard-Codierung (Systemabhängig!) Methoden: void close() throws IOException void write(int c) throws IOException u.v.m.
25 Ein-/Ausgabe mit Text Klasse PrintWriter Zum formatierten Schreiben von Zeichen (z.b. Zeilenweise) Konstruktor: public PrintWriter(Writer out) Implementiert alle PrintStream-Methoden Methoden erzeugen keine Ausnahmen
26 Ein-/Ausgabe mit Text Beispiel Speichern (Fortsetzung) (Code Teil der Ereignisbehandlung in einem Frame): try{... Iterator it = <DatenContainer>.iterator(); while(it.hasnext()){ p.println("neu"); <Datenklasse> o = it.next(); p.println(o.get<attribut>());... } p.println("ende"); p.close(); } catch(exception ex){...} 26
27 Ein-/Ausgabe mit Text Beispiel Laden (Code Teil der Ereignisbehandlung in einem Frame): FileDialog fd = new FileDialog(this,"Öffnen", FileDialog.LOAD); fd.setvisible(true); try{ BufferedReader r = new BufferedReader( new InputStreamReader( new FileInputStream( fd.getdirectory()+fd.getfile()))); <DatenContainer> con = <DatenContainer>.instance(); String line = r.readline();... 27
28 Ein-/Ausgabe mit Text Laden von physikalischer Datei über Eingabe-Datenströme Zum Laden von Bytes, Zeichen oder Zeilen aus Dateien Datenströme bilden Vererbungshierarchie InputStream FileInputStream FilterInputStream ObjectInputStream BufferedInputStream DataInputStream
29 Ein-/Ausgabe mit Text Klasse FileInputStream Zum Lesen einzelner Bytes aus einer Datei Konstruktor: public FileInputStream(String filename) throws FileNotFoundException Stellt Verbindung zu existierender Datei her Ausnahme, falls - Datei existiert, aber ein Ordner ist - Datei nicht existiert - Datei existiert, aber nicht geöffnet werden kann
30 Ein-/Ausgabe mit Text Klasse FileInputStream Zum Lesen einzelner Bytes aus einer Datei Methoden: int read() throws IOExeption Liest Bytes void close() throws IOExeption Schließt den Strom, gibt Resourcen frei u.v.m. (auf Ausnahmen achten!)
31 Ein-/Ausgabe mit Text Klasse ObjectInputStream Zur Deserialisierung später
32 Ein-/Ausgabe mit Text Laden von physikalischer Datei über Eingabe-Datenlesern Zum (effizienten) Laden von Zeichen aus Dateien Datenleser bilden Vererbungshierarchie Reader InputStreamReader BufferedReader
33 Ein-/Ausgabe mit Text Klasse InputStreamReader Zum Umwandeln von Bytes in Zeichen bzgl. einer Codierung Konstruktor: public InputStreamReader(InputStream in) Umwandlung nach Standard-Codierung (Systemabhängig!) Methoden: int read() throws IOException boolean ready() throws IOException (lesebereit?) u.v.m.
34 Ein-/Ausgabe mit Text Klasse BufferedReader Zum zeilenweisen effizienten Lesen von Zeichen Konstruktor: public BufferedReader(Reader in) Gepufferter Zeichenstrom Methoden: String readln() throws IOException (Lesen einer Zeile) boolean ready() throws IOException u.v.m.
35 Ein-/Ausgabe mit Text Beispiel Laden (Fortsetzung) (Code Teil der Ereignisbehandlung in einem Frame):... <DatenContainer> con = <DatenContainer>.instance(); String line = r.readline(); while(!line.equals("ende"){ if(line.equals("neu")){ <Datenklasse> o = new <Datenklasse>(); o.set<attribut>(r.readline());... con.add<datenklasse>(o); line = r.readline(); } } r.close();... 35
36 Entkoppelung (Wiederholung) Bisher: Code zum Laden und Speichern in Fensterklassen Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht (eigene Klasse Datei) 36
37 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Zugriff nur über Fachkonzeptschicht <Container> -daten<container> -root WurzelContainer -root -store <<interface>> Datenhaltung <Container> -daten<container> Datei 37
38 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Spezifizierung der Schnittstelle <<interface>> Datenhaltung +load(out d:wurzelcontainer) + save(in d:wurzelcontainer) +add(in o:object) +delete(in o:object) +modify(in o:object) Laden und Speichern aller Objekte einer Klasse Speichern, Löschen und Modifizieren einzelner Objekte (leer implementiert) 38
39 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Implementierung der Schnittstelle Datei - filename:string +Datei(filename:String) +load(out d:wurzelcontainer) + save(in d:wurzelcontainer) +add(in o:object) +delete(in o:object) +modify(in o:object) 39
40 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Konstruktor import java.io.*; public class Datei{ private String filename; public Datei(String file){ filename = file; }... } 40
41 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Objekt-bezogene Methoden leer implementieren... public void add(object o){} public void delete(object o){} public void modify(object o){} 41
42 Entkoppelung (Wiederholung) Jetzt: Laden/Speichern ausgliedern in Datenhaltungsschicht Laden und Speichern... public void save(wurzelcontainer d){ <Code wie vorhin für alle DatenContainer im WurzelContainer> } public void load(wurzelcontainer d){ <Code wie vorhin für alle DatenContainer im WurzelContainer> } 42
43 Entkoppelung (Wiederholung) Daten aus Textdatei laden: Überblick GUI starten In GUI DatenContainer-Objekt con leer initialisieren In GUI über Befehl Laden )Schaltfläche oder Menü-Item) FileDialog öffnen und dort Datei (filename) wählen In GUI con.load(filename) aufrufen In load Datei-Objekt store mit filename initialisieren In load Aufruf store.load(this) starten 43
44 Entkoppelung (Wiederholung) Daten in Textdatei speichern: Überblick In GUI über Befehl Speichern )Schaltfläche oder Menü-Item) FileDialog öffnen und dort Datei (filename) wählen )ggf. Unterscheidung Speichern / Speichern unter ) In GUI con.save(filename) aufrufen In save für Datei-Objekt store Attribut filename setzen In save Aufruf store.save(this) starten 44
45 Ein-/Ausgabe mit Objektserialisierung Speichern durch Serialisierung Ein Objekt wird mit seinen Attributwerten und Beziehungen zu anderen Objekten unter Beibehaltung seiner Klasse als Byte- Strom in einer Datei gespeichert. Dasselbe passiert mit allen mit diesem Objekt in Beziehung stehenden anderen Objekten. Man braucht ein Wurzelobjekt zur Verwaltung aller Objekte Serialisierung des Wurzelobjekts führt zur Serialisierung aller Objekte (Beispiel: Klasse WurzelContainer) Das serialisierte Objekt kann mit allen in Beziehung stehenden Objekten wieder deserialisiert werden: Objekte werden wieder im Arbeitsspeicher erzeugt 45
46 Ein-/Ausgabe mit Objektserialisierung Speichern durch Serialisierung Ein Objekt wird mit seinen Attributwerten und Beziehungen zu anderen Objekten unter Beibehaltung seiner Klasse als Byte- Strom in einer Datei gespeichert. Dasselbe passiert mit allen mit diesem Objekt in Beziehung stehenden anderen Objekten. Auf die Daten kann nur durch einen Benutzer zugegriffen werden Daten müssen komplett in den Arbeitsspeicher passen Speicherung kann beliebig oft während einer Sitzung erfolgen. Änderungen zwischen zwei Speicherungen gehen bei Systemausfall verloren Datendatei nicht von anderen Programmen interpretierbar 46
47 Ein-/Ausgabe mit Objektserialisierung Implementierung in Java: API-Schnittstelle Serializable Klassen, deren Objekte serialisiert werden sollen, müssen die ( vererbt Schnittstelle Serializable implementieren (wird Die Schnittstelle Serializable besitzt keine Operationen oder Attribute 47
48 Ein-/Ausgabe mit Objektserialisierung Implementierung in Java: Modifizierer transient Attribute, die nicht serialisiert werden sollen/müssen, deklariert man als transient: <Sichtbarkeit> transient <meinattribut>; Das betrifft Attribute, die keine Daten der Anwendung repräsentieren Beispiel: Attribut store der Klasse WurzelContainer 48
49 Ein-/Ausgabe mit Objektserialisierung Klasse ObjectOutputStream Schreibt primitive Datentypen und Objekte in einen OutputStream. Ein Objekt wird mit allen referenzierten Objekten, deren Klassen die Schnittstelle Serializable implementieren, geschrieben Konstruktor ObjectOutputStream(OutputStream out) 49
50 Ein-/Ausgabe mit Objektserialisierung Klasse ObjectOutputStream Schreibt primitive Datentypen und Objekte in einen OutputStream. Ein Objekt wird mit allen referenzierten Objekten, deren Klassen die Schnittstelle Seriazable implementieren, geschrieben Methoden void close() throws IOException Leert und schließt den Strom, gibt alle Ressourcen frei final void writeobject(object obj) throws IOException Schreibt obj ohne transiente und statische Attribute Ausnahmen u.a. für nicht serialisierbare Objekte 50
51 Ein-/Ausgabe mit Objektserialisierung Klasse ObjectInputStream Liest primitive Datentypen und Objekte, die vorher mit einem ObjectOutputStream-Objekt geschrieben wurden. Rekonstruiert alle Objekte mit Objektbeziehungen. Konstruktor ObjectInputStream(InputStream in) 51
52 Ein-/Ausgabe mit Objektserialisierung Klasse ObjectInputStream Liest primitive Datentypen und Objekte, die vorher mit einem ObjectOutputStream-Objekt geschrieben wurden. Rekonstruiert alle Objekte mit Objektbeziehungen. Methoden void close() throws IOException final Object readobject() throws IOException Deserialisert das in einer Datei serialisierte Objekt mit Objektstruktur und allen in Beziehung stehenden Objekten und gibt dieses Objekt zurück 52
53 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Konstruktor import java.io.*; public class Datei{ private String filename; public Datei(String file){ filename = file; }... } 53
54 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Objekt-bezogene Methoden leer implementieren... public void add(object o){} public void delete(object o){} public void modify(object o){} 54
55 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Speichern public void save(wurzelcontainer d){ try{ ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream(filename)); oos.writeobject(d); oos.close(); } catch(...){...} } 55
56 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Laden public void load(wurzelcontainer d){ try{ ObjectInputStream ois = new ObjectInputStream( new FileInputStream(filename)); d = ois.readobject();??? ois.close(); } catch(...){...} } 56
57 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Laden public void load(wurzelcontainer d){ try{ ObjectInputStream ois = new ObjectInputStream( new FileInputStream(filename)); d = ois.readobject();??? ois.close(); } catch(...){...} } Der Zeiger d kann NICHT umgebogen werden! 57
58 Ein-/Ausgabe mit Objektserialisierung Implementierung der Klasse Datei Laden public void load(wurzelcontainer d){ try{ ObjectInputStream ois = new ObjectInputStream( new FileInputStream(filename)); WurzelContainer temp = ois.readobject(); d.set<datencontainer>(temp.get<datencontainer>()); ois.close(); } catch(...){...} } Stattdessen: Daten an d übertragen 58
59 Ein-/Ausgabe mit Objektserialisierung Daten deserialisieren: Überblick GUI starten In GUI DatenContainer-Objekt con leer initialisieren In GUI über Befehl Laden )Schaltfläche oder Menü-Item) FileDialog öffnen und dort Datei (filename) wählen In GUI con.load(filename) aufrufen In load Datei-Objekt store mit filename initialisieren In load Aufruf store.load(this) starten 59
60 Ein-/Ausgabe mit Objektserialisierung Daten serialisieren: Überblick In GUI über Befehl Speichern )Schaltfläche oder Menü-Item) FileDialog öffnen und dort Datei (filename) wählen )ggf. Unterscheidung Speichern / Speichern unter ) In GUI con.save(filename) aufrufen In save für Datei-Objekt store Attribut filename setzen In save Aufruf store.save(this) starten 60
61 Zusammenfassung Datenhaltung lässt sich weitgehend ohne Veränderung der GUI- und Fachkonzept-Klassen austauschen Ausnahmen: Schnittstelle Serializable für Objektserialisierung Unterschiedliche Auswahl von Datenbanken und Dateien Unterschiedliche Zeitpunkte des Abspeicherns 61
62 Exkurs XML EXtensible Markup Language erweiterbare Auszeichnungssprache/Beschreibungssprache Strukturierter Text (ASCII oder Unicode) zur: Strukturierung von Dokumenten Beschreibung und (hierarchischer) Strukturierung von Daten Definition von Auszeichnungssprachen Portables Datenformat Im Folgenden: Kurze beispielhafte Einführung (Vollständig ist XML Thema einer eigenständigen Vorlesung) 62
63 Definition XML EXtensible Markup Language erweiterbare Auszeichnungssprache/Beschreibungssprache Daten (Werte) werden durch sog. Tags (Elemente) markiert: <Jahr> 2009 </Jahr> Anfangs-Tag Wert End-Tag Tags beschreiben die Semantik von Werten (Zeichenfolgen) 63
64 Definition XML EXtensible Markup Language erweiterbare Auszeichnungssprache/Beschreibungssprache Tags können ineinander verschachtelt werden. seinstrukturiertkanntagseineswertder <Datum> <Jahr> 2009 </Jahr> <Monat> Juli </Monat> <Tag> 22 </Tag> </Datum> Eltern-Tag Kind-Tags Ein XML-Dokument bildet also eine Baumstruktur 64
65 Definition XML EXtensible Markup Language erweiterbare Auszeichnungssprache/Beschreibungssprache Daten können alternativ/zusätzlich durch Attribute beschrieben werden <Datum Jahr= 2009 Monat= Juli Tag= 22 > </Datum> ( Schlüsselwort-Wert-Paare ) Attribute Das Beispiel zeigt einen sog. leeren Tag; Kurzschreibweise: <Datum Jahr= 2009 Monat= Juli Tag= 22 /> 65
66 Definition XML EXtensible Markup Language erweiterbare Auszeichnungssprache/Beschreibungssprache Attribute vs. Kind-Tags: Attribute beschreiben oft Zusatzinformationen Strukturierte Tags beschreiben i.d.r. Datenobjekte 66
67 XML-Dateien Beispiel: Vorlesungen und Professoren <?xml version= 1.0 encoding= UTF-8?> XML-Deklaration <Vorlesungsverwaltung> <Vorlesung ID= > Wurzel-Tag <Name> Informatik 2</Name> <Dozent ID= > <Name> Hagerup </Name> <Lehrstuhl> Theoretische Informatik </Lehrstuhl> </Dozent> </Vorlesung>... <Vorlesung ID= >... </Vorlesung> </Vorlesungsverwaltung> 67
68 XML-Namensräume Der gleiche Tag kann in unterschiedlichen Dokumenten verschiedene Bedeutungen haben Durch Angabe eines sog. Namensraums wird die gemeinte Bedeutung eindeutig festgelegt Globaler Namensraum für das ganze Dokument: <Wurzel-Element xmlns= > XML-NameSpace Namensraum für Teile eines Dokuments: <Kind-Element xmlns= > 68
69 XML-Schema XML-Schema ist eine XML-Sprache zur Definition der Syntax von XML-Dokumenten Mit einem XML-Schema-Dokument legt man fest, was gültige XML-Dokumente bzgl. des Schema-Dokuments sind Mit einem XML-Schema-Dokument legt man also eine Datenstruktur fest Mit einem XML-Dokument speichert man konkrete Daten ab XML-Schema-Dokument : XML-Dokument = Klassendiagramm : Menge von Datenobjekten 69
70 XML-Schema XML-Schema ist eine XML-Sprache zur Definition der Syntax von XML-Dokumenten Festgelegt werden können u.a.: Tag-Elemente mit primitivem/komplexem Datentyp Attribute eines Tag-Elements Kind-Tag-Elemente eines Tag-Elements Minimale/Maximale Häufigkeit des Vorkommens eines Objekts Strukturen wie Mengen, Folgen, von Objekten. u.v.m 70
71 XML-Schema XML-Schema-Dokument Beispiel: Definition komplexer Datentypen Definition eigener (strukturierter) Datenytpen Definition von Attributen <xsd:element name="name" type="xsd:string"/> <xsd:complextype name="professortyp"> <xsd:sequence> <xsd:element ref="name"/> Definition von Kind-Tags als Sequenz <xsd:element name="lehrstuhl" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="persid" type="xsd:id" use="required"/> </xsd:complextype> <xsd:complextype name="vorlesungtyp"> <xsd:sequence> <xsd:element ref= "Name"/> <xsd:element name="dozent" type="professortyp"/> </xsd:sequence> <xsd:attribute name="vorlid" type="xsd:id" use="required"/> </xsd:complextype> 71
72 XML-Schema XML-Schema-Dokument Beispiel: Definition komplexer Datentypen <xsd:element name="vorlesungsverwaltung"> <xsd:complextype> <xsd:sequence> <xsd:element name="vorlesung" type="vorlesungtyp" maxoccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:string"/> </xsd:complextype> </xsd:element> 72
73 XML-Schema Einige XML-Schema-Dokument-Tags mit Attributen Tag: xsd:element Attribute: name Element-Name type Element-Typ default Voreingestellter Wert minoccurs Mindestanzahl von Elementen maxoccurs Maximale Anzahl von Elementen ref Verweis auf andere Element-Def. Darstellung von unstrukturiertem typisiertem Inhalt 73
74 XML-Schema Einige XML-Schema-Dokument-Tags mit Attributen Tag: xsd:complextype Attribute: name Element-Name Darstellung von strukturiertem Inhalt Kind-Tags definieren Komponenten der Struktur 74
75 XML-Schema Einige XML-Schema-Dokument-Tags mit Attributen Tag: xsd:sequenz Legt Reihenfolge der Komponenten fest xsd:choice Erlaubt Auswahl von Komponenten xsd:all Lässt Reihenfolge der Komponenten beliebig Inhaltsmodelle für komplexe Strukturen 75
76 XML-Schema Einige XML-Schema-Dokument-Tags mit Attributen Tag: xsd:attribute Attribute: name Attribut-Name type Attribut-Typ default Voreingestellter Wert use optional, required, prohibited Definition von Attributen eines Elements 76
77 XML-Schema Einige XML-Schema-Dokument-Tags mit Attributen Tag: xsd:restriction xsd:extension Attribute: base Allgemeinerer Typ Spezialisierung durch Einschränkung / Erweiterung Benutzung: <xsd:complextype name="childelement"> <xsd:complexcontent> <xsd:extension base="parentelement">...zusätzlicher Inhalt... </xsd:extension> </xsd:complexcontent> </xsd:complextype> 77
78 XML-Schema Das gibt es u.a. auch noch: Viele weitere Attribute Aufzählungen (xsd: enumeration) Über 40 vorgegebene primitive Datentypen Aggregierte Typen (xsd:list, xsd: union) Selbst abgeleitete unstrukturierte Typen (xsd:simpletype)... 78
79 XML-Schema Man kann Klassendiagramme und XML-Schema-Dokumente ineinander überführen Es gibt dafür unterschiedliche Vorschläge Es gibt automatisierte Verfahren Es stehen dafür verschiedene Erweiterungen der Java-API zur Verfügung Im Folgenden: Beispielhafte Beschreibung einer Übersetzung Von Klassen-Diagrammen in Schema-Dokumente 79
80 Klassendiagramm2XML Grundsätzliche Überlegungen Eindeutigkeit von Element-Namen? UML-Attribute/-Rollen als XML-Attribute oder -Elemente? Übersetzung von Multiplizitäten? Übersetzung von Generalisierungen? 80
81 Klassendiagramm2XML Grundsätzliche Überlegungen Eindeutigkeit von Element-Namen? UML-Namen qualifizieren durch Klassen-/Paket-Namen UML-Attribute/-Rollen als XML-Attribute oder -Elemente? Verschiedene Strategien. Streng: immer als Elemente Übersetzung von Multiplizitäten? Attribute minoccurs und maxoccurs Übersetzung von Generalisierungen? Elemente xsd:extension und xsd:restriction 81
82 Klassendiagramm2XML Kurz skizziert: Modellname Element Inhalt: xsd:complextype Kind-Elemente: Elemente zu Klassen Klassen Attribut Rolle xsd:complextype-element Kind-Elemente: Attribute / Assoziations-Rollen Element Typ: Wenn möglich beibehalten Element Typ: Klasse des assoziierten Objekts 82
83 Klassendiagramm2XML Generierung gültiger XML-Dokumente Wahl der Baumstruktur zur Auflösung von Assoziations-Zyklen? Wähle irgendeine azyklische Entfaltung Beispiel: Vorlesungen und Professoren Alternative 1: Liste alle Vorlesungen mit jeweiligem Dozenten auf (Professoren als Kind-Elemente von Vorlesungen, siehe Beispiel vorher) Alternative 2: Liste alle Professoren mit ihren jeweiligen Vorlesungen auf (Vorlesungen als Kind-Elemente von Professoren) 83
84 Eigenschaften/Vorteile/Nachteile Mit XML lassen sich Struktur und Repräsentation von Daten trennen Mit XML lassen sich Daten plattformunabhängig austauschen: Standard-Datenaustauschformat über das Internet XML ist menschenlesbar XML-Dokumente lassen sich automatisch verarbeiten XML ist leicht erweiterbar und flexibel einsetzbar (, Webservices, Multimedia, GrafikinAnwendungen ( 84
85 XML-Parser Zur Verarbeitung von XML-Dokumenten verwendet man Parser: Überprüfen ein Dokument auf Gültigkeit (bzgl. eines ( Schema-Dokuments ( Schreiben Erlauben den Zugriff auf Datenobjekte (Lesen, Interpretieren Daten ( Text Es gibt Parser für den sequentiellen Zugriff (wie bei und den wahlfreien Zugriff (wie bei Datenbanken) auf Daten Parser stellen eine API zur Verfügung, über die Anwendungen auf XML-Dokumente zugreifen können (wie bei Datenbanken) 85
86 XML und Java Es stehen verschiedene Java-APIs für die Verarbeitung von XML-Dokumenten zur Verfügung Details gehen über diese Vorlesung hinaus Prinzipielles Vorgehen wie bei Datenbanken 3-Schichten-Architektur analog 86
Java 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
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
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();
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
MehrKapitel 8: Serialisierbarkeit
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 8: Serialisierbarkeit Folie 189 : Serialisierbarkeit Die Umwandlung eines komplexen Objektes in ein Byte-Array nennt
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
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
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
MehrInformatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze
Vorlesung 14 Serialisierung, Autoboxing 1 Serialisierung von Objekten Die Objekte innerhalb eines Java-Programmes sollen manchmal auch nach Beendigung der JVM verfügbar bleiben Objekte müssen ab und an
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 9. Schichtenarchtitektur: Teil 1 (Datenhaltung)
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
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 -
MehrProblemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2
Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten
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
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
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
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,
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 12. UML GUI-Schicht 1 GUI-Schicht Sichtbarmachen
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
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
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
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
MehrDeklaration standalone="yes" Quelle:
Wohlgeformtes XML-Dokument 1. Zu jedem Start-Tag existiert genau ein Ende-Tag 2. Bei leeren Elementen können diese zusammenfallen 3. Korrekte Elementschachtelung, d.h. keine Überlappung 4. Genau ein Wurzelelement
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
MehrXML-Schema Datentypen
Datentypen Data Types Simple Types Complex Types User-derived Built-in Atomic (restriction) Non-atomic (list, union) Primitive Derived WT:III-1 XML Schema Reference Lettmann 2014 Datentypen anytype anysimpletype
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
MehrDateien. DVG Dateien 1
Dateien DVG2-05 - Dateien 1 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem JAVA-Programm her. Das Filesystem enthält als Objekte Devices, Verzeichnisse
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
MehrProgrammieren 2 11 Objekt-Serialisierung
Programmieren 2 11 Objekt-Serialisierung Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Noch eine Persistenzalternative Eine Adresse als
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
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;
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
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.
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
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 12.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 8 Abgabe: Montag, 19.12.2011, 12.00 Uhr, Informatik
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:
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:
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. 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
MehrTeil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen
Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für
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
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
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 13. Java Ausnahmebehandlung 1 Motivation
MehrXML Schema 2016 S h_da S Seite 1
XML Schema Seite 1 XML/Schema: Strukturen Dokumentinstanz Dokumenttyp Wellformed Valid Dokumentstrukturdefinition mit XML/Schema XML Document Type Definition Seite 2 XML Dokument Instanz XML-Deklaration
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
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrXSD - XML Schema Definition
XSD - XML Schema Definition Definieren von XML-Dokumenten Michael Dienert 15. September 2016 Inhaltsverzeichnis 1 Was sind XSD Dateien und warum soll man das lernen? 1 1.1 XSD Dateien und Anwendungen....................
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
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
Mehr6.1.5 Verzeichnisdateien
6.1.5 Verzeichnisdateien Anstelle eines zentralen Verzeichnisses: Menge von Verzeichnisdateien (directory files), die selbst in Verzeichnissen verzeichnet sind, alle ab einem Wurzelverzeichnis (root directory)
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
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;
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
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
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
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
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
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:
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
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
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
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
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
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
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
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
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
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
MehrLösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
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
MehrTag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
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
MehrAlgorithmen und Datenstrukturen 06
31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung
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
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
MehrUNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme
UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen
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
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
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
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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe
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
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrXML Schema 2012/2013 S Seite 1 h_da W
XML Schema Seite 1 XML/Schema: Strukturen Wiederholung Element / Attribut Deklaration XML Document Type Declaration Seite 2 XML Schema Schemata sind XML-Dokumente
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
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 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
Mehr