Java I/O Input / Output stream Library

Slides:



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

DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Einführung in die Programmierung Ausführbare Klassen
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
Daten Anzeigen und Ausdrucken Zu Zeigende Daten (z.B. Studentenplan) Daten in XML müssen geparst und in PDF- Format umgewandelt werden. Dazu iTEXT Bibliothek.
Indirekte Adressierung
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Java: Grundlagen der Sprache
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
DVG Dateien. DVG Die Klasse File Die Klasse File stellt die Verbindung zwischen dem File-System des Rechners und dem JAVA-Programm her.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
Datenströme DVG Datenströme.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Eine Entwicklungsumgebung im Web IFC-Seminar WS98/ Holger Otte.
Rekursive Funktionen (Fakultät)
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
Copyright 2007 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2007/08 Kapitel 10, Folie 1 2 Dr. Christian Herzog Technische.
Grundlagen der Informatik 1 Thema 20: Ströme und Ein-/Ausgabe in Java
Java für Fortgeschrittene
Copyright 2004 Bernd Brügge Einführung in die Informatik II TUM Sommersemester Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Objektorientiertes Konstruieren
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
Optimale Ursprungsgerade
ac.at1 EPROG Tutorium #1 Philipp Effenberger Einführung in Java Schlüsselworte Datentypen.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Java-Intensivkurs WS07/08 Folie 1 Ashraf Abu Baker Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Ein- und Ausgabe in Java Packet: java.io
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Ein- und Ausgabe in der Programmiersprache Java.
Java I/O Input / Output stream Library
java.net Klassenbibliothek für den Datentransport im Netz
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Dynamisches Laden von Klassen
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Schleifen mit der Turtle
«Delegierter» Methoden Schablone Funktionszeiger
 Präsentation transkript:

Java I/O Input / Output stream Library Regelt I/O über verschiedene Kanäle Filesystem Console Netzwerk Intern Führt notwendige Umwandlungen/Konvertierungen aus

Furchtbar viele Klassen

Hierarchie der Klassen von java.io zwei abstrakte Klassen InputStream OutputStream Streams, die Bytes transportieren, z.B.: FileInputStream / FileOutputStream ByteArrayInputStream / ByteArrayOutputStream FilterStreams, Streams mit Verarbeitung (Konvertierungen, Serialisierung/Deserialisierung von Objekten, Pufferung z.B.: DataInputStream PrintStream BufferedInputStream

InputStream/Outputstream Abstrakte Klassen stellen die elementare Funktionalität bereit Quelle/ Senke der Informationsübertragung sind noch völlig offen Sie finden immer dort Anwendung, wenn verschiedene Informationskanäle genutzt werden sollen. Hinter einem InputStream kann sich ein beispielsweise ein FileInputStream oder NetzwerkStream verbergen

Bytes transportierende Streams

InputSteam – die wichtigsten Funktionen

Die Klasse File Klasse zur Ermittlung der Eigenschaften von Dateien Die Eigenschaften einer Datei ist nicht im Objekt abgelegt, sondern werden beim System erfragt long length(); boolean isDirectory(); boolean isFile(); boolean canRead(); String[] listFiles(); String[] list();

Lesen von Daten bekannter Länge FileInputStream fis=new FileInputStream(f); int len=(int)f.length(); System.out.println("Length: "+len); byte[] data=new byte[len]; // Lesen der Daten bei (sehr) kleinen Dateien // mit einer read-Operation // fis.read(data,0,(int)f.length()); int lenr=0; // Stream lesen, wenn die Laenge bekannt ist while (lenr<len) {lenr+=fis.read(data,lenr,len); System.out.println(new String(data,0,len));}

http://ecx. images-amazon. com/images/I/51VnGeBwoFL http://ecx.images-amazon.com/images/I/51VnGeBwoFL._SX337_BO1,204,203,200_.jpg

ByteArrayOutputStream HexDump(InputStream fis) { try // Lesen eines Streams unbekannter Laenge // Lesen der Daten in Datenpuffer (buf) // Schreiben der Daten nach ByteArrayOutputStream, // der mit den Daten waechst ByteArrayOutputStream bos=new ByteArrayOutputStream(1024); byte buf[]=new byte[1024]; int lenr; while ((lenr=fis.read(buf))>-1) bos.write(buf,0,lenr); data=bos.toByteArray(); }catch(Exception e){System.out.println(e);} }

Die Klasse DataInputStream Gehört zur Gruppe der Filterstreams Typische Funktionen sind readInt, readLong, readDouble usw. int readInt(); Der Eingabestrom muss natürlich entsprechende Daten enthalten Zur Eingabe von Text sollte man Funktionen der Klasse Reader verwenden.

DataOutputStream class DataIOStream { public static void main(String args[])throws Exception FileOutputStream fout=new FileOutputStream("d.bin"); DataOutputStream dout=new DataOutputStream(fout); for (String s:args) dout.writeLong(Long.parseLong(s)); dout.close(); } -> java DataIOStream 12 48 65535 7 -> hexdump -C data.bin 00000000 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 30 00000010 00 00 00 00 00 00 ff ff 00 00 00 00 00 00 00 07 Java speichert in der Byteorder big endian!! - x86: Little endian

class DataIOStream { public static void main(String args[])throws Exception FileOutputStream fout=new FileOutputStream("data.bin"); DataOutputStream dout=new DataOutputStream(fout); for (String s:args) dout.writeLong(Long.parseLong(s)); dout.close(); FileInputStream fis=new FileInputStream("data.bin"); DataInputStream di=new DataInputStream(fis); long l; try while(true) l=di.readLong(); System.out.println(l); } catch (EOFException e) {System.out.println("EOF reached");}

BufferedReader

Beispiel Reader { // FileInputStream fis=new FileInputStream(f); try { // FileInputStream fis=new FileInputStream(f); // InputStreamReader R=new InputStreamReader(fis); FileReader R=new FileReader(f); char[] data=new char[(int)f.length()]; R.read(data,0,(int)f.length()); Ret=new String(data); } catch (Exception e) System.out.println("File Disappeared");

Text Zeilenweise lesen File F=new File("......ml/SwitchPollin.html"); String Line; BufferedReader bf=new BufferedReader(new FileReader(F)); while((Line=bf.readLine())!=null) { out.println(Line); }

Streamklassen

import java. io. ; // http://openbook. galileocomputing public class ReadGifSizeCatchingExceptions {   public static void main( String[] args )   { RandomAccessFile f=null;     try     {       f = new RandomAccessFile( "duke.gif", "r" );       f.seek( 6 );       System.out.printf( "%s x %s Pixel%n", f.read() + f.read() * 256,                          f.read() + f.read() * 256 );       f.close();     }     catch ( FileNotFoundException e )       System.err.println( "Datei ist nicht vorhanden!" );     catch ( IOException e )       System.err.println( "Allgemeiner Ein-/Ausgabefehler!" ); finally if ( f != null ) try { f.close(); } catch ( IOException e ) { } }   }