Modellierung & Programmierung 1. Streams. Dr. Mathias Goldau

Größe: px
Ab Seite anzeigen:

Download "Modellierung & Programmierung 1. Streams. Dr. Mathias Goldau"

Transkript

1 Modellierung & Programmierung 1 Streams Dr. Mathias Goldau

2 Ein- und Ausgabe - EVA Prinzip 1 Jedes informationsverarbeitende System folgt dem EVA Prinzip: Eingabe-Verarbeitung-Ausgabe (IPO) Beispiel: Computerspiele als informationsverarbeitende Systeme Eingabe: Tastatur, Maus, Controller, Touchscreen,... Verarbeitung: Fahrsimulator, Rollenspiel, Jump n Run,... Ausgabe: Monitor, Audio, Controller Feedback,... Struktur von informationsverarbeitenden Systemen beschreibbar Eingabe und Ausgabe können durch Datenströme abstrahiert werden Beispiele für Datenströme: Video-Streams Logfiles (Protokolldateien) Heartbeat Wetterdaten

3 Datenströme (Streams) 2 Datenströme repräsentieren eine Datensequenz eines festen Datentyps Sie arbeiten nach dem First-In-First-Out (FIFO) Prinzip Daten müssen Serialisierbar sein Man unterscheidet zwischen: Eingabe- und Ausgabe-Strom (lesen und schreiben) Gepufferten und ungepufferten Strom Anwendungen im Datentransfer: Duplizierung Archivierung, Zwischenspeichern Kommunikation Manipulation Konvertieren Filtern Datenströme können hintereinander geschaltet werden (Pipeline)

4 Datenströme (Streams) 3

5 Input/Output in Java 4 Java abstrahiert I/O von Datenquelle und Datenziel mittels Streams Oracle Tutorial zu Streams Im Laufe der Java-Evolution viele I/O Packages: Java 1.0.2: java.io Java 1.4.2: java.nio (new/non-blocking IO) Java 7 : java.nio (Verbesserte API: NIO.2) java.io zusammen mit java.nio bilden das Grundgerüst Einige Bestandteile veraltet: java.io.file java.nio.file.path

6 Input/Output in Java 5 In Java gibt es hinsichtlich des Datentyps zwei wesentliche Streams Byte Streams: (8-bit) Character Streams: (16-bit wegen UTF-16) Andere Datentypen (Objekte, Primitive Types) werden auf Byte Streams zurückgeführt Orthogonal dazu unterscheidet Java auch zwischen Eingabe und Ausgabe Streams und zwischen Gepufferten und ungepufferten Streams Streams sollten immer nach Benutzung geschlossen werden (wenn man sie auch selbst erzeugt hat)

7 Namenskonventionen für Stream-Klassen in Java 6 Byte Streams erben in Java immer von InputStream oder OutputStream und enden meist auf Stream. Beispiele: PrintStream, CipherOutputStream, BufferedInputStream Character Streams erben in Java immer von Writer oder Reader und enden meist auf Reader oder Writer. Beispiele: FileReader, StringReader, BufferedWriter Konvertierung Byte Character Stream: InputStreamReader, OutputStreamWriter Character Byte Stream: Kein direkter Weg Jeder Byte und jeder Character Stream können gepuffert werden: BufferedWriter, BufferedReader, BufferedInputStream, BufferedOutputStream Scanner und Formatting API: Scanner extrahiert Wörter (Tokens) mit Hilfe von regulären Ausdrücken PrintWriter oder PrintStream kombinieren Tokens anhand von Platzhaltern (vgl. format u. printf)

8 Standard Streams 7 In Java sind wir schon Streams in Form der Standard Streams begegnet Betriebssysteme stellen oft jedem Programm drei Streams zur Verfügung: System.in (für Eingabe) System.out (für Ausgabe) System.err (für Fehlermeldungen) Wo werden diese Streams geschlossen? Von der Virtuellen Maschine! Historisch bedingt sind alle drei Byte Streams PrintStream emuliert vieles eines Character Streams System.err und System.out sind jeweils ein PrintStream System.in ist ein InputStream Sicherheitskritische Eingaben besser mit System.Console und readpassword (Kein Echo auf der Konsole)

9 Beispiel Byte Stream 8 1 import java.io.ioexception; 2 import java.util.arrays; 3 4 /* liest max. 10 Bytes von Tastatur, gibt diese auf der Konsole aus */ 5 public class Read10Bytes { 6 public static void main( String[] args ) { 7 byte[] bytes = new byte[10]; // Feld zum Lesen 8 try { 9 System.out.println( "Maximal 10 Bytes eingeben:" ); 10 int bytesanzahl = System.in.read(bytes); 11 System.out.print( "Es wurden " + bytesanzahl + " B eingelesen: " ); 12 System.out.write(bytes); 13 System.out.println(); 14 System.out.println( Arrays.toString( bytes ) ); // bytes ansehen 15 } 16 catch( IOException e ) { // Fehlerbehandlung allgemein 17 System.err.println( "IO-Error: " + e ); 18 } 19 } 20 }

10 Beispiel Byte Stream 9 1 #> java Read10Bytes 2 Maximal 10 Bytes eingeben: ü 4 Es wurden 10 B eingelesen: ? 5 [49, 50, 51, 52, 53, 54, 55, 56, 57, -61] 6 Fertig!

11 Beispiel Character Stream 10 1 import java.io.ioexception; 2 import java.io.inputstreamreader; // direct descendant from Reader 3 import java.util.arrays; 4 5 /* liest max. 10 Zeichen von Tastatur, gibt diese auf der Konsole aus */ 6 public class Read10Chars { 7 public static void main( String[] args ) { 8 char[] data = new char[10]; // Feld zum Lesen 9 try { 10 System.out.println( "Maximal 10 Zeichen eingeben:" ); 11 InputStreamReader in = new InputStreamReader( System.in ); 12 int zeichenanzahl = in.read( data ); 13 System.out.println( "Es wurden " + zeichenanzahl + " Zeichen eingelesen: " ); 14 System.out.println( new String( data ) ); 15 System.out.println(); 16 System.out.println( Arrays.toString( data ) ); 17 } 18 catch( IOException e ) { // Fehlerbehandlung allgemein 19 System.err.println( "IO-Error: " + e ); 20 } 21 } 22 }

12 Beispiel Character Stream 11 1 #> java Read10Chars 2 Maximal 10 Zeichen eingeben: 3 üöäüöäüöäß 4 Es wurden 10 Zeichen eingelesen: 5 üöäüöäüöäß 6 7 [ü, ö, ä, ü, ö, ä, ü, ö, ä, ß]

13 Beispiel Buffered Streams 12 1 import java.io.ioexception; 2 import java.io.inputstreamreader; 3 import java.io.bufferedreader; 4 5 /* liest eine Zeile von Tastatur und gibt diese auf der Konsole aus */ 6 public class ReadLine 7 { 8 public static void main( String[] args ) 9 { 10 String line = new String(); 11 try 12 { 13 System.out.println( "Geben Sie eine Zeile ein:" ); 14 BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); 15 line = in.readline(); 16 System.out.println( "Ein Zeile mit: " + line.length() + " Unicode Einheiten wurde eingegeben:" ); 17 System.out.println( line ); 18 } 19 catch( IOException e ) // Fehlerbehandlung allgemein 20 { 21 System.err.println( "IO-Error: " + e ); 22 } 23 } 24 }

14 Primitive und Object Streams 13 Primitive Streams: DataInputStream und DataOutputStream haben read und write Methoden für alle primitiven Datentypen und String-Werte. Sie implementieren das DataInput bzw. das DataOutput Interface DataInputStream und DataOutputStream haben Konstruktoren für InputStream und OutputStream Object Streams: Analog zu DataInputStream und DataOutputStream aber mit den Klassen ObjectOutputStream und ObjectInputStream und Interfaces ObjectInput und ObjectOutput Objekte können wiederum Referenzen anderer Objekte beinhalten (evtl. zyklische Abhängigkeiten) Objekte müssen serialisierbar sein und daher Serializable implementieren Oracle Guide on Serialization Vorlesungsfolien Serialisierung Ein Objekt kann in einem Stream nicht dupliziert werden: Object o = new Object(); out.writeobject( o ); // frist write out.writeobject( o ); // second write

15 Beispiel Primitive Streams Programm schreibt Daten auf Standardausgabe 2. Programm liest Daten von Standardeingabe Beide Programme über Pipe verbunden: #> java RandomNumber java RandomNumberReader Am Beispiel eines Arrays von Double-Werten

16 Beispiel Primitive Streams: 1. Programm 15 1 import java.util.arrays; 2 import java.io.dataoutputstream; 3 import java.io.ioexception; 4 5 public class RandomNumbers { 6 public static void main( String[] args ) { 7 double[] data = { 0.3, 1.1, 124, 4.0, -9.99, 0.49 }; 8 System.err.println( "Send: " + Arrays.toString( data ) ); 9 10 DataOutputStream out = new DataOutputStream( System.out ); try { 13 for( double d : data ) { 14 out.writedouble( d ); 15 } 16 } 17 catch( IOException e ) { 18 System.err.println( "IOError: " + e ); 19 } 20 System.err.println( "Sending done." ); 21 } 22 }

17 Beispiel Primitive Streams: 2. Programm 16 1 import java.util.arrays; 2 import java.io.datainputstream; 3 import java.io.ioexception; 4 5 public class RandomNumbersReader { 6 public static void main( String[] args ) { 7 double[] data = new double[6]; 8 9 DataInputStream in = new DataInputStream( System.in ); try { 12 for( int i = 0; i < 6; i++ ) { 13 data[i] = in.readdouble(); 14 } 15 } 16 catch( IOException e ) { 17 System.err.println( "IOError: " + e ); 18 } 19 System.err.println( "Got: " + Arrays.toString( data ) ); 20 } 21 }

18 Beispiel Primitive Streams: Output 17 #> java RandomNumber java RandomNumberReader Send: [0.3, 1.1, 124.0, 4.0, -9.99, 0.49] Sending done. Got: [0.3, 1.1, 124.0, 4.0, -9.99, 0.49]

19 Dateien in Java 18 Nutzen Sie die Packages java.nio.file und java.nio.file.attribute Verwenden Sie in neuen Projekten nicht java.io.file, da: Viele Methoden keine Exceptions werfen wenn sie fehlschlagen. rename Methode arbeitet nicht einheitlich auf allen Plattformen Keine Unterstützung für Verknüpfungen (Symlinks) Ineffizienter Zugriff auf Metadaten Viele Methoden bei sehr großen Verzeichnissen langsam... Dennoch unterstützt auch Java 8 noch java.io.file Ab Java 7 werden Dateien und Verzeichnisse (Ordner) durch einen Pfad (Path) abstrahiert

20 Paths 19 Dateisystem organisiert Verzeichnisse (Ordner), Dateien und Verknüpfungen meist hierarchisch als Baum Eine Datei wird durch einen Pfad (Path) identifiziert /home/sally/statusreport bzw. C:\home\sally\statusReport

21 Paths 20 Man unterscheidet zwischen: Relativen Pfaden:../math/Foobar/../SVD.java, john/doe Absoluten Pfaden: /home/math/mnt/../foobar/src/svd.java, C:\etc Pfade ohne Redundanzen bezeichnet man in Java als normiert Verknüpfungen (links) bezeichnet man in vielen Systemen als symbolic link, kurz symlink. Sie sind wie ein Alias zu verstehen. Achtung, hierbei können Zyklische Verweise entstehen! Pfade werden in Java durch das Interface java.nio.file.path realisiert Beinhaltet: Dateiname, Verzeichnisliste Wird benutzt um Dateien zu lokalisieren, zu modifizieren, zu lesen,... Eine Path Instanz ist nicht plattformunabhänig Viele Operationen mit Helferklasse java.nio.files.files Es gibt viele verschiedene Implementierungen von Paths für verschiedenste Dateisysteme

22 Path Operationen 21 Ein Path muss nie zwangsläufig existieren Path p1 = Paths.get( "/tmp/foo" ); Path p2 = FileSystems.getDefault().getPath( "/tmp/foo" ); Path p3 = Paths.get( System.getProperty( "user.home" ), ".my.log" ); Für eine plattformunabhänige Referenz des Benutzerverzeichnisses Redundanzen entfernen mit normalize(): /tmp/../etc /etc Paths vergleichen mit Path.equals(): p1.equals( p2 ) Paths vereinigen mit Path.resolve(): p1.resolve("bar") /tmp/foo/bar Beispiel: Path path = Paths.get("/home/joe/foo"); Method Solaris OS MS Windows tostring() /home/joe/foo C:\home\joe\foo getfilename() foo foo getname(0) home home getnamecount() 3 3 subpath(0,2) home/joe home\joe getparent() /home/joe \home\joe getroot() / C:\

23 Dateioperationen - Existenz, Zugriff und Attribute 22 Überprüfen der Existenz einer Datei / eines Verzeichnisses: Die Datei existiert: Files.exists( path ) ist true Die Datei existiert nicht: Files.notExists( path ) ist true Die Existenz ist unbekannt (evtl. ungenügende Rechte zur Überprüfung): Files.exists( path ) und Files.notExists( path ) liefern false In Java bietet zusätzlich Methoden um Zugriffsrechte zu überprüfen: Lesbarkeit: Files.isReadable( path ) Schreibbar: Files.isWritable( path ) Ausführbar: Files.isExecutable( path ) Weiterführende Attribute: isdirectory isregularfile issymboliclink ishidden getowner und setowner vlg. java.nio.files.attributes

24 Dateioperationen - Löschen, Kopieren und Verschieben 23 Löschen: Files.delete( path ) und Files.deleteIfExists( path ) Kopieren: Files.copy( path1, path2, OPTIONS ) Optionen sind: REPLACE_EXISTING, COPY_ATTRIBUTES,... Verschieben: Files.move( path1, path2, OPTIONS ) Optionen sind: REPLACE_EXISTING, ATOMIC_MOVE

25 Dateien Lesen und Schreiben 24 Java bietet eine Vielzahl an Möglichkeiten um Dateien zu lesen und zu schreiben Ohne direkten Zugriff auf Streams (für kleine Dateien): Files.readAllBytes( path ) Files.readAllLines( path ) Files.write( path, bytes, options ) Files.write( path, lines, options ) Streambasierten Zugriff: Files.newBufferedReader( path ) Files.newBufferedWriter( path ) Files.newInputStream( path ) Files.newOutputStream( path ) Weiterführende Zugriffe: Channel,...

26 Beispiel: Hello File! 25 1 import java.util.arrays; 2 import java.nio.file.files; 3 import java.nio.file.paths; 4 import java.nio.file.standardopenoption; 5 import java.nio.charset.standardcharsets; 6 import java.io.ioexception; 7 8 public class HelloFile { 9 public static void main( String[] args ) { 10 try { 11 Files.write( Paths.get( args[0] ), Arrays.asList( "Hello File!" ), 12 StandardCharsets.UTF_8, StandardOpenOption.CREATE ); 13 } catch ( IOException e ) { 14 System.err.println( "Error: " + e ); 15 } 16 } 17 } 1 #>ls -l foobar.txt 2 ls: cannot access foobar.txt: No such file or directory 3 #> java HelloFile foobar.txt 4 #> ls -l foobar.txt 5 -rw-r--r-- 1 math math 12 Jan 20 15:05 foobar.txt 6 #> cat foobar.txt 7 Hello File!

27 Beispiel: Textdatei in Liste zeilenweise einlesen 26 1 import java.io.ioexception; 2 import static java.nio.charset.standardcharsets.*; 3 import java.nio.file.*; // Files, Paths, Path 4 import java.util.list; 5 6 public class ReadTextFile { 7 public static void main( String[] args ) { 8 try { 9 Path file = Paths.get( args[0] ); 10 List< String > lines = null; 11 lines = Files.readAllLines( file, UTF_8 ); 12 System.out.println( lines ); 13 } catch ( IOException e ) { 14 System.err.println( "Error: " + e ); 15 } 16 } 17 } 1 #> java ReadTextFile foobar.txt 2 [Hello File!] 3 #> java ReadTextFile /etc/shadow 4 Error: java.nio.file.accessdeniedexception: /etc/shadow

28 Beispiel: Byte Streams 27 1 import java.io.inputstream; 2 import java.io.ioexception; 3 import java.nio.file.*; // Files, Paths, Path 4 5 public class ReadFileByteByByte { 6 public static void main( String[] args ) { 7 Path file = Paths.get( args[0] ); 8 try( InputStream in = Files.newInputStream( file ) ) { 9 int data = 0; 10 while((data = in.read())!= -1) { 11 System.out.write(data); 12 } 13 } catch( IOException e ) { 14 System.err.println( "Error: " + e ); 15 } 16 } 17 } 1 #> java ReadFileByteByByte foobar.txt 2 Hello File!

29 Beispiel: Buffered Character Streams 28 1 import java.io.*; // IOException, BufferedReader 2 import static java.nio.charset.standardcharsets.*; 3 import java.nio.file.*; // Files, Paths, Path 4 5 public class ReadTextFileLineByLine { 6 public static void main( String[] args ) { 7 Path file = Paths.get( args[0] ); 8 try( BufferedReader in = Files.newBufferedReader( file, UTF_8 ) ) { 9 String line = null; 10 int linenumber = 1; 11 while( ( line = in.readline() )!= null ) { 12 System.out.println( linenumber + ": " + line ); 13 linenumber++; 14 } 15 } catch ( IOException e ) { 16 System.err.println( "Error: " + e ); 17 } 18 } 19 } 1 #> java ReadTextFileLineByLine /etc/resolv.conf 2 1: # Generated by NetworkManager 3 2: search informatik.uni-leipzig.de informatik.uni-leipzig.de. 4 3: nameserver : nameserver

30 Beispiel: Objekte in Datei 29 Wollen eigene Objekte in Datei schreiben Mitarbeiter Klasse wie folgt: 1 import java.io.serializable; 2 3 public class Mitarbeiter implements Serializable { 4 Mitarbeiter( String name, double gehalt ) { 5 _name = name; 6 _gehalt = gehalt; 7 } 8 9 public String tostring() { 10 return super.tostring() + "[ " + _name + ", " + _gehalt + " ]"; 11 } String _name = ""; 14 double _gehalt = 0.0; 15 }

31 Beispiel: Objekte in Datei 30 1 import java.nio.file.*; 2 import java.io.*; 3 import java.util.*; 4 5 public class WriteObjects { 6 public static void main( String[] args ) { 7 Mitarbeiter klaus = new Mitarbeiter( "Klaus Klausen", ); 8 Path file = Paths.get( args[0] ); 9 try( OutputStream os = Files.newOutputStream( file ); 10 ObjectOutputStream out = new ObjectOutputStream( os ); ) { 11 out.writeobject( klaus ); 12 out.writeobject( klaus ); 13 } catch( IOException e ) { 14 System.err.println( "Error: " + e ); 15 } 16 } 17 }

32 Beispiel: Objekte aus Datei 31 1 #> java WriteObjects MA.dat 2 #> java ReadObjects MA.dat 3 Mitarbeiter@7eaadc2d[ Hans Hansen, ] 4 Mitarbeiter@7eaadc2d[ Hans Hansen, ] 1 import java.nio.file.*; 2 import java.io.*; 3 import java.util.*; 4 5 public class ReadObjects { 6 public static void main( String[] args ) { 7 Mitarbeiter[] klaus = new Mitarbeiter[2]; 8 Path file = Paths.get( args[0] ); 9 try( InputStream is = Files.newInputStream( file ); 10 ObjectInputStream in = new ObjectInputStream( is ); ) { 11 klaus[0] = (Mitarbeiter) in.readobject(); 12 klaus[1] = (Mitarbeiter) in.readobject(); 13 System.out.println( Arrays.toString( klaus ) ); 14 klaus[0]._name = "Hans Hansen"; 15 System.out.println( Arrays.toString( klaus ) ); 16 } catch( IOException e ) { 17 System.err.println( "Error: " + e ); 18 } catch( ClassNotFoundException e ) { 19 System.err.println( "CastError: " + e ); 20 } 21 } 22 }

java.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 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

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

Mehr

Vorlesung Programmieren

Vorlesung 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

Mehr

Java Input/Output System (IO)

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

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Vorlesung 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: 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

Mehr

File (io) Problem. Methoden von File werfen keine Exceptions. Größere Verzeichnis-Auflistungen können das System ausbremsen

File (io) Problem. Methoden von File werfen keine Exceptions. Größere Verzeichnis-Auflistungen können das System ausbremsen OCP Java SE 8 NIO2 File (io) Problem Methoden von File werfen keine Exceptions Größere Verzeichnis-Auflistungen können das System ausbremsen Abfrage von Metadaten ist rudimentär Arbeit mit symbolischen

Mehr

Java Fehlerbehandlung

Java 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

Mehr

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Ausnahmen. 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

Mehr

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)

Arten 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

Mehr

Eingabe 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 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;

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. 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

Mehr

Dr. Monika Meiler. Inhalt

Dr. 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

Mehr

Grundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Datei! Das Problem!

Grundlagen 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,

Mehr

Streams. 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 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

Mehr

Java 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. 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

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. 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:

Mehr

Info B VL 7: Input/Output

Info 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:

Mehr

Datenströme in Java. Zeichenkonvertierung

Datenströ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

Mehr

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI

Streams. 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

Mehr

Modellierung und Programmierung 1

Modellierung 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();

Mehr

Java Einführung IO (Eingabe/Ausgabe)

Java 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

Mehr

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. 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

Mehr

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

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

Mehr

Client-Server TCP/IP - Kodierung

Client-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

Mehr

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. 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

Mehr

Einführung zur Aufgabengruppe 2

Einführung zur Aufgabengruppe 2 Einführung zur Aufgabengruppe 2 Alle Literaturhinweise beziehen sich auf die Vorlesung WS 10 Modellierung und Programmierung 1 1 Dateiverwaltung, das Stream-Konzept... 1-2 1.1 Datenströme (s. Kapitel Streams)...

Mehr

Vorlesung Programmieren

Vorlesung 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

Mehr

Umleitung von Datenströmen

Umleitung 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

Mehr

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. 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

Mehr

Handbuch konsultieren!

Handbuch 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

Mehr

Abschnitt 18: Beispiel: I/O-Streams

Abschnitt 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

Mehr

Programmieren 2 09 File-IO

Programmieren 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:

Mehr

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme

JAVA 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

Mehr

Client-Server TCP/IP - Kodierung

Client-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

Mehr

Kapitel 12. Programmierkurs. Allgemeine Konzepte Byte-Streams versus Character-Streams

Kapitel 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

Mehr

Java I/O, Serialisierung und Netzwerkprogrammierung

Java 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

Mehr

Ausnahmebehandlung PK11W-16,

Ausnahmebehandlung PK11W-16, Ausnahmebehandlung PK11W-16, 05. 12. 2011 1 Laufzeitfehler weitere Ausführung unmöglich Ausnahme geworfen Beispiele: ArrayIndexOutOfBoundsException NullPointerException ArithmeticException AssertionError

Mehr

Programmieren in Java

Programmieren 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

Mehr

Socket-Programmierung unter Java

Socket-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

Mehr

Einführung zur Aufgabengruppe 2

Einführung zur Aufgabengruppe 2 Einführung zur Aufgabengruppe 2 Alle Literaturhinweise beziehen sich auf die Vorlesung Modellierung und Programmierung 1 1 Dateiverwaltung, das -Konzept... 1-2 1.1 Datenströme (s. Kapitel s)... 1-2 1.1.1

Mehr

Java 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. 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

Mehr

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Problemstellung. 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

Mehr

Ausdrucksbäume in verschiedenen Darstellungen

Ausdrucksbä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

Mehr

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 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

Mehr

Socket-Programmierung unter Java

Socket-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

Mehr

Programmieren 2 Selbststudium Semesterwoche 6

Programmieren 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

Mehr

Java Einführung Exception Handling. Kapitel 17

Java 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

Mehr

Grundlagen der Programmierung. Kapitel 10: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei

Grundlagen 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

Mehr

Grundlagen der Programmierung. Kapitel 11: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei

Grundlagen 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

Mehr

Grundlagen der Programmierung. Kapitel 11: Ein- und Ausgabe. Ziele dieses Kapitels. Das Problem. Datei

Grundlagen 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

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung 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;

Mehr

Modellierung und Programmierung 1

Modellierung 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

Mehr

Software Entwicklung 1

Software 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

Mehr

Dateien, Streams. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Dateien, 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 -

Mehr

Dynamische Datenstrukturen Jiri Spale, Algorithmen und Datenstrukturen - Dynamische Datenstrukturen 1

Dynamische 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

Mehr

Grundlagen der Objektorientierten Programmierung - Ein- / Ausgabe-Streams

Grundlagen 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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

5.2 Input/Output mit Dateien

5.2 Input/Output mit Dateien 252-0027 Einführung in die Programmierung 5.2 Input/Output mit Dateien Michael Faes & Thomas R. Gross Departement Informatik Manipulieren von Dateien Klasse File erlaubt Operationen mit Dateien (Files)

Mehr

Wie schreibt bzw. wie liest man die beiden unterschiedlichen Darstellungen?

Wie 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

Mehr

Dateien. DVG Dateien 1

Dateien. 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

Mehr

Grundlagen der Programmierung! Kapitel 10: Ein- und Ausgabe! Ziele dieses Kapitels! Das Problem! Datei!

Grundlagen 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

Mehr

Klassen und Objekte. Objekte einer Klasse bilden

Klassen und Objekte. Objekte einer Klasse bilden Klassen und Objekte SWE-18 Eine Klasse definiert gleichartige Objekte mit ihren Datenelementen (Variable, fields) und Operationen (Methoden) in einer geschlossenen Programmstruktur. Beispiel: class Circles

Mehr

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß

Dateien: 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

Mehr

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 313

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 313 Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Ausnahmen 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 Ausnahmen und IO Fehler, Ausnahmen, Java- Exception, throw, catch, Ströme, Puffer, Dateien lesen, schreiben, Tastatur, Terminal, HTTP Fehler - Ausnahmen Fehler Fehler :: Unreparierbares Unreparierbares

Mehr

Ein- und Ausgabe. Algorithmen und Datenstrukturen II 1

Ein- 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

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Lösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)

Lö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)

Mehr

CS1005 Objektorientierte Programmierung

CS1005 Objektorientierte Programmierung CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Dateien Konzept, Verwendungsbeispiele Textdateien und ihre Analyse Binärdateien Seite 1 Thomas Letschert Dateien - Konzept Datei

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 04: Variablenzugriff und Eingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Zugriff auf Instanzvariablen Praktisches Beispiel: Student

Mehr

Streams. Thomas Schwotzer

Streams. 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.

Mehr

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 12 Datenverarbeitung

Einfü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

Verteilte Systeme - Java Networking (Sockets) 2 -

Verteilte 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:

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät Vorlesung Sommer 2009 Teil I Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Ausnahmen

Prof. 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

Mehr

Programmiertechnik Ausnahmen

Programmiertechnik 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:

Mehr

boolean ispalindrome = word.equalsignorecase(reverse.tostring());

boolean ispalindrome = word.equalsignorecase(reverse.tostring()); Bereich: Input/Output (2) Palindrome speichern Package: de.dhbwka.java.exercise.io Musterlösung Klasse: PalindromeFile package de.dhbwka.java.exercise.io; import java.io.bufferedreader; import java.io.file;

Mehr

Autoboxing - Nachtrag

Autoboxing - 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

Mehr

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 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

Mehr

Java I Vorlesung Exceptions

Java 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

Mehr

Kapitel 9. Ein- und Ausgabe. 9.1 Ströme

Kapitel 9. Ein- und Ausgabe. 9.1 Ströme Kapitel 9 Ein- und Ausgabe In den bisherigen Programmbeispielen wurden die Benutzereingaben immer über die Kommandozeile und Ausgaben immer durch Aufruf der Methode System.out.println realisiert. Tatsächlich

Mehr

Programmieren 2 09 File-IO

Programmieren 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:

Mehr

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19

Informatik 1 - Translation Studies in Information Technology. Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19 Informatik 1 - Translation Studies in Information Technology INF1 TSIT MUSTERLÖSUNG: PFLICHTÜBUNG 1 Musterlösung zum Aufgabenblatt der ersten Pflichtübung im Wintersemester 18/19 Praktikum zur Vorlesung

Mehr

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am

Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public

Mehr

Dateien/Streams. Arthur Zaczek. Okt 2015

Dateien/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:

Mehr

3.11 Ausnahmen und Ein-/Ausgabe

3.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

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 13 Java-E/A-System 13.1. E/A-System-Überblick 13.2 Dateisystem - Betriebssystemsicht 13.3 Java-I/O-System 13.4 I/O-Klassenhierachie 13.5 InputStream class; Reader class 13.5.1 read() method 13.5.2 skip()

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. ! 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

Mehr

1. Betrachte das folgende Programm:

1. Betrachte das folgende Programm: Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Betrachte das folgende Programm:

Mehr

Dateien/Streams. Arthur Zaczek

Dateien/Streams. Arthur Zaczek Dateien/Streams Arthur Zaczek Okt 2015 1/23 Input/Output Input/Output 2/23 Was ist ein Stream? Figure 1: InputStream Input/Output 3/23 Warum streamen? Reduktion des Speicherverbrauchs: es muss nicht der

Mehr