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

Ähnliche Dokumente
Client-Server TCP/IP - Kodierung

Client-Server TCP/IP - Kodierung

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

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

Programmieren 2 Selbststudium Semesterwoche 6

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

Java Einführung Exception Handling. Kapitel 17

Java Einführung IO (Eingabe/Ausgabe)

Socket-Programmierung unter Java

Programmieren in Java

Vorlesung Programmieren. Java I/O: Input und Output mit Java. Ein-/Ausgabe von Daten. Java I/O. Heute. Grundlage fast aller Programme

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

Handbuch konsultieren!

Socket-Programmierung unter Java

Vorlesung Programmieren

Umleitung von Datenströmen

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

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

Java Fehlerbehandlung

Datenströme in Java. Zeichenkonvertierung

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Dr. Klaus Höppner

Ein- und Ausgabe in Java

Referat: Netzwerkprogrammierung in Java

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

Ausdrucksbäume in verschiedenen Darstellungen

Javakurs für Fortgeschrittene

Java I Vorlesung Exceptions

Java Input/Output System (IO)

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

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

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

Software Entwicklung 1

Exceptions - Klausuraufgaben

Modellierung und Programmierung 1

2 Die Codierung Sehen wir uns mal den vereinfachten Weg der Informationen von der Tastatur aus bis zum Filesystem an:

Grundlegende Java Bibliotheken

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Programmiermethodik. Übung 10

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

Einführung in die OOP mit Java Character-Streams Gliederung

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

System.out.println("TEXT");

Java - Programmierung - Prozedurale Programmierung 1

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Prozeduren, Funktionen, Datenströme, JavaDoc

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Vorlesung 11. Sitzung Grundlegende Programmiertechniken

Programmieren 2 09 File-IO

Einführung in die Informatik Files and Streams

Fragenkatalog ESOP WS 16/17

Transkript:

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 read() write() byte Inputstream Outputstream byte Datenquelle Datenziel

Byteströme(InputStream/OutputStream) II InputStream inputstream = new FileInputStream("data.txt"); int data = inputstream.read(); Ein Byte in integer-variable einlesen while(data!= -1) { Solange Daten eingelesen wurden System.out.print((char)data); Die Daten werden als Byte eingelesen data = inputstream.read(); Nächstes Byte einlesen inputstream.close(); Datenstrom schließen InputStream initialisieren int read(): Liest und gibt ein Byte zurück; wenn keine Daten mehr da sind:- 1 int read(byte[] b): Liest Daten in ein Byte-Array und gibt die Anzahl der gelesen Zeichen zurück int write(byte[] b): Schreibt Daten aus einem Byte-Array

Byteströme(InputStream/OutputStream) III InputStream inputstream = new FileInputStream("data.txt"); byte[] data = new byte[100]; int bytesread = inputstream.read(data); while(bytesread!= -1) { System.out.print(new String(data, "UTF-8")); bytesread = inputstream.read(data); inputstream.close(); Ein Byte Array als Datenpuffer Die ersten max. 1024 Bytes einlesen Solange Daten eingelesen worden sind Byte-Array in String umwandeln Die nächsten max. 1024 Zeichen einlesen Datenstrom schließen int read(): Liest und gibt ein Byte zurück; wenn keine Daten mehr da sind:- 1 int read(byte[] b): Liest Daten in ein Byte-Array und gibt die Anzahl der gelesen Zeichen zurück int write(byte[] b): Schreibt Daten aus einem Byte-Array

Byteströme(InputStream/OutputStream) IV int bytesread = inputstream.read(data); while(bytesread!= -1) {. while(inputstream.read(data)!= -1) {. Vereinfachung Variante 1 while((bytesread = inputstream.read(data))!= -1) {. Vereinfachung Variante 2

Byteströme(InputStream/OutputStream) V try { InputStream inputstream = new FileInputStream("data.txt"); catch(ioexception e) { System.out.print("Fehler beim Öffnen der Datei!"); catch(exception e) { System.out.print("Sonstiger Fehler!"); finally { System.out.print("Nach erfolgreichem(oder auch nicht) Lesen!"); // hier werden alle offenen Resource geschlossen Viele Streams brauchen das try-catch -Konstrukt Es sind mehrere Fehlerfälle möglich, am Ende auch ein allgemeiner Fehlerfall! finally wird immer ausgeführt kein..close ist nötig!

Byteströme(InputStream/OutputStream) III InputStream inputstream = new FileInputStream("d:\\test\\data.txt"); InputStream inputstream ; inputstream = new FileInputStream("d:\\test\\data.txt"); The FileInputStream class makes it possible to read the contents of a file as a stream of bytes. The FileInputStream class is a subclass of InputStream. This means that you use the FileInputStream as an InputStream (FileInputStream behaves like an InputStream). Inputstream FileInput- Stream

Datenströme(DataInputStream/DataOutputStream) I Java Programm int, float, double Data Input stream DataOut put stream int, float, double bytes bytes bytes Input stream Output stream bytes Datenquelle Datenziel

Datenströme(DataInputStream/DataOutputStream) II String filename="data.txt"; Datenstrom öffnen DataOutputStream dataoutputstream =new DataOutputStream(new FileOutputStream(filename)); dataoutputstream.writeint(123); Die Daten werden als int gelesen dataoutputstream.close(); Datenstrom schließen Datenstrom öffnen DataInputStream datainputstream =new DataInputStream(new FileInputStream(filename)); int int123 = datainputstream.readint(); Die Daten werden als int geschrieben datainputstream.close(); Datenstrom schließen System.out.println("int123 = " + int123);

Datenströme(DataInputStream/DataOutputStream) II

Eingehende Datenströme mit InputStreamReader bytes Input Stream bytes Input Stream Reader chars Datenquelle Programmkode FileInput- Lokal/Unicode Stream Kodierung

OutputStreamWriter/InputStreamReader I Ersetzt "try" Optional Wahl des Zeichensatzes für die import java.io.*; Konvertierung in Bytes(ISO-Latin1, UTF-8, UTF-16) public class OutputStreamWriterExample { public static void main(string[] args) throws IOException { OutputStream outputstream = new FileOutputStream("Data.txt"); Writer outputstreamwriter = new OutputStreamWriter(outputStream); //Writer outputstreamwriter = new OutputStreamWriter(outputStream,"UTF-16"); outputstreamwriter.write("any fool can."); outputstreamwriter.close();

Kodierungen(ASCII und Unicode) A ~ ASCII 41 7e UTF-8 41 7e e282ac UTF-16 0041 07e 20ac UTF-32 00000041 0000007e 000020ac https://www.branah.com/unicode-converter

Eingehende Datenströme mit BufferedReader bytes Input Stream bytes Input Stream Reader chars Buffered Reader Datenquelle Programmkode FileInput- Lokal/Unicode Stream Kodierung Puffer

BufferedWriter/BufferedReader I import java.io.*; filestream OutputStreamWriter - BufferedWriter public class BufferedWriterExample { public static void main(string[] args) throws IOException { writeusingbufferwriter(); Ersetzt "try" private static void writeusingbufferwriter() throws IOException { System.out.println("1. Start writing contents to file - BufferedWriter"); try (FileOutputStream filestream = new FileOutputStream(new File("MyFavSports.txt")); OutputStreamWriter writer = new OutputStreamWriter(fileStream); BufferedWriter bufferwriter = new BufferedWriter(writer)) { bufferwriter.write("blitz chess(easy)"); bufferwriter.newline(); bufferwriter.write("blitz Java stream coding(hardest)"); bufferwriter.newline(); // bufferwriter.close(); Wird angeblich vom try geschlossen! System.out.println("2. Successfully written contents to file - BufferedWriter");

BufferedWriter/BufferedReader II Writer bufferwriter = new BufferedWriter(writer)); Writer Writer bufferwriter; bufferwriter = new BufferedWriter(writer)); Buffered Writer

Abbruchbedingung beim Einlesen von Daten inputstream.read(data) =!-1 datainputstream.available()>0 inputstreamreader.read()!=-1 bufferedreader.readline()!= null

Zum Schluss

Eingehende Datenströme(Analog ausgehende Datenströme) http://www.makeinjava.com/inputstreamreaderoutputstreamwriter-utf-file-example/ https://o7planning.org/de/10173/die-anleitung-zu-java-io-characterstreams