Ein- und Ausgabe in Java Packet: java.io

Slides:



Advertisements
Ähnliche Präsentationen
IDGARD QUICKSTART GUIDE: Mitarbeiter anlegen
Advertisements

Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Java: Dynamische Datentypen
Parser - Verfahren: Rekursiver Abstieg
Indirekte Adressierung
Dateien. Eine Datei wird in C++ als ein Stream, also als ein Objekt einer bestimmten Klasse dargestellt.
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
Konstruktoren.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Präsentation des Seminararbeitsthemas
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Datenströme DVG Datenströme.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
1 Dienstbeschreibung mit DAML Ein graphischer Editor für DAML - Ting Zheng Betreuer: Michael Klein, Philipp Obreiter.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Ein Computerprogramm zur Erstellung von Concept Maps
Eine Bewerbung schreiben
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Informatik 2 Typinformationen und Ein- und Ausgabe
Hyperlinks und Anker Links notieren
Steuerung externer Komponenten über ein USB-Interface.
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,
PowerPoint 2003 Objekt kopieren
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.
Hallo zusammen! hab ein -vermutlich- kleines problem: ich kann keine einzelnen wörter in meiner präsentation einblenden lassen. gegebenheit: ich hab ne.
Wie man eine einfache Präsentation erstellt...
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Dynamische Webseiten-Generierung
Dateizugriffe mit Applikationen 2. Dateizugriffe mit Applets
Einführungstutorial: Linux Konsole
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Multimedia in Java Thomas Witschel, Kerstin Steinert & Erik Reinhard.
Dokumente meistern Dokumente anlegen Dokumente speichern
Berechenbarkeit Klaus Becker Berechenbarkeit.
XML-Verarbeitung mit dem.NET-Framework. Inhalt 1.XML-Verarbeitung mittels XmlReader- und XmlWriter-basierter Klassen 2.XML-Verarbeitung mittels XmlDocument.
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 12. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 13. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Ein- und Ausgabe von Daten -Routinen zum einlesen von Rohdaten -Einlesen von der Tastatur -Routinen zum Einlesen und speichern von Bildern -Angabe eines.
Objektorientierte Programmierung (OOP)
Abstrakte Klassen und das Interface-Konzept
28/07/2015Walther-Rathenau- Gewerbeschule 1 Zeichenketten (Strings)
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)
Tutorium Software-Engineering SS14 Florian Manghofer.
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 I/O Input / Output stream Library
1. Die rekursive Datenstruktur Liste 1
Objektorientierte Programmierung
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

Ein- und Ausgabe in Java Packet: java.io 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule 18/04/2017 Walther-Rathenau-Gewerbeschule

Daten Daten Daten Daten Daten

Das Stream-Konzept in Java Ein Stream besteht aus einer Quelle, der Daten an ein Ziel überträgt Unter dem Begriff »Quelle« bzw. »Ziel« versteht man alle möglichen Ressourcen wie Speicherpuffer, Netzwerkverbindungen, Tastatur, Bildschirm Drucker usw.. 18/04/2017 Walther-Rathenau-Gewerbeschule

Datenströme in Java bearbeiten Die Java-Klassen für Binärdaten enden mit: ..InputStream ..OutputStream Die Java-Klassen für Textdaten enden mit: ..Reader ..Writer

Klassenhierachie

Verknüpfung von Streams Low- und Highlevel-Streams

Dateien lesen und schreiben Überblick 18.04.2017 Walther-Rathenau-Gewerbeschule

Text-Dateien einlesen

Text-Dateien schreiben

Dateien byteweise einlesen

Dateien byteweise schreiben

Textdateien lesen und schreiben: File(Reader|Writer) 18.04.2017 Walther-Rathenau-Gewerbeschule

Zeilenweise lesen mit FileReader 18/04/2017 Walther-Rathenau-Gewerbeschule

Zeilenweise schreiben mit FileWriter 18.04.2017 Walther-Rathenau-Gewerbeschule

Auf einmal lesen mit FileReader Mit FileReader kann der Inhalt von Textdateien auch auf einmal gelesen werden. Dazu wird der read()- Methode ein char-Array übergeben, in der die Zeichen eingelesen werden. Problem: Ein Array benötigt bei der Initialisierung immer eine Länge. Die length()-Methode der Klasse File liefert die Länge der Datei. Allerdings muss deren Rückgabewert vorher von long in int umgewandelt werden... 18/04/2017 Walther-Rathenau-Gewerbeschule

In Datei schreiben mit PrintWriter PrintWriter eignet sich auch für andere Zielorte wie z. B. Daten über das Netzwerk verschicken. Die println()-Methode erzeugt nach jedem Schreiben automatisch einen Zeilenumbruch, so dass das Senden von "\n" unnötig ist. Da PrintWriter aber manchmal Daten zwischen-puffert bevor er sie versendet, kann mittels der flush()-Methode das Senden erzwungen werden. Für den Autoflush muss im Konstruktor true angegeben werden. 18/04/2017 Walther-Rathenau-Gewerbeschule

Noch bequemer lesen mit Scanner Scanner kann Zeichenketten in sog. Tokens zerlegen. Mittels einem regulären Ausdruck kann der useDelimiter()-Methode angegeben werden, auf welche Weise die Daten getrennt werden sollen. Standardmäßig werden die Daten bei jedem Leerzeichen getrennt. Die readLine()-Methode arbeitet analog wie BufferedReader. Außerdem kann Scanner über viele Methoden wie nextInt(), nextDouble() usw. automatisch die Daten Konvertieren. Wortweise lesen 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Aufgabe Erstellen Sie eine Textdatei mit dem folgenden Inhalt: Max;Mustermann;01.01.2000 Hans;Peter;31.03.2010 Lesen Sie anschließend die Daten aus der Datei zeilenweise mit FileReader auf einmal mit FileReader wortweise mit Scanner Schreiben Sie eine weitere Zeile dazu mit FileWriter mit PrintWriter 18.04.2017 Walther-Rathenau-Gewerbeschule

Byteweise lesen und schreiben: File(Inupt|Output)Stream 18.04.2017 Walther-Rathenau-Gewerbeschule

Dateien byteweise einlesen und schreiben 18.04.2017 Walther-Rathenau-Gewerbeschule

Daten über das Netwerk: Sockets 18.04.2017 Walther-Rathenau-Gewerbeschule

Daten über das Netzwerk senden und empfangen cp1252 ist das Symbol für das Windows-Latin-1- Zeichensatz. D.h. die empfangenen Daten werden als Windows-Latin-1 interpretiert und automatisch in UTF8 umkonvertiert 18/04/2017 Walther-Rathenau-Gewerbeschule

Serialisierung von Objekten 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Serialiserung Java-Objekte können beliebig komplex sein. Ein Objekt kann intern aus mehreren anderen Objekten (Objektgraph) bestehen. Möchte man nun ein Objekt über das Netzwerk verschicken oder in einer Datei abspeichern, so ist u. U. ein ganzer Objektgraph derart zu Serialiseren (“platt zu drücken”), dass später aus den serialiserten Daten das ursprüngliche Objekt (-graph) ohne Datenverlust rekonstruiert werden kann. Java bietet seit der Version 1 ein sehr einfaches Verfahren an, um Objekte zu Serialiseren bzw. zu Deserialiseren. Die zwei Klassen die dazu benötigt werden sind: java.io.ObjectOutputStream. java.io.ObjectInputStream 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Serialiserung 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Serialiserung Serialisierbare Klassen müssen das leere Interface Serializable implementieren. Ein (Pferd-)-Objekt wird mittels der writeObject-Methode eines ObjectOutputStreams serialisiert. ObjectOutputStreams benötigt ein OutputStream als Ziel. FileOutputStream wird für Serialisierung in Dateien verwendet. Es können an dieser Stelle auch beliebig andere OutputStream's, die Beispielsweise Ziele über das Netzwerk repräsentieren, verwendet werden. Die readObject()-Methode der Klasse ObjectInputStream de-serialisiert die empfangenen Daten wieder in Java-Objekte. Auch ObjectInputStream ist eine sog. High-Level-Klasse. Sie kann die Daten nur über übergebenenes InputStream (wie FileInputStream) lesen. 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Objektgraph Die Klasse Halter muss das leere Interface Serializable implementieren. 18/04/2017 Walther-Rathenau-Gewerbeschule

Walther-Rathenau-Gewerbeschule Objektgraph 18/04/2017 Walther-Rathenau-Gewerbeschule

Objektgraph Serialisieren Ein Objekt einer Klasse kann nur dann serialisiert werden, wenn sowohl die Klasse selbst als auch alle direkten und indirekten Klassen, mit denen die Klasse in Beziehung steht, das Serializable- Interface implementiert haben. Falls man nicht den Sourcecode einer Klasse heran kommt, um nachträglich das Serializable-Interface zu implementieren, so kann man am einfachsten eine neue Klasse von der nicht serialisierbaren Klasse erben lassen, die neue Klasse als Serializable markieren und statt der nicht serialisierbaren Superklasse verwenden. 18/04/2017 Walther-Rathenau-Gewerbeschule