Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Σχετικά έγγραφα
Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Ειδικά Θέματα Προγραμματισμού

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

Προγραμματισμός Διαδικτύου

Ειδικά Θέματα Προγραμματισμού

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αρχεία και Ρεύματα. Αρχεία

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 8: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 5: Κληρονομικότητα. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ειδικά Θέματα Προγραμματισμού

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Είσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 7: Υπερφόρτωση τελεστών. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 6: Φιλικές συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Διαδικτύου

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Διαδικτύου

Προγραµµατισµός ΙΙ Java 2

Προγραμματισμός Διαδικτύου

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μεταγλωττιστές. Ενότητα 3: Τυπικές γλώσσες (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Αντικειμενοστρεφής Προγραμματισμός

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 7: Αρχεία. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διαδικαστικός Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Προγραμματισμός Διαδικτύου

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Δομημένος Προγραμματισμός

ΜΑΘΗΜΑ: Μεταγλωττιστές

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Αντικειμενοστραφής Προγραμματισμός

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Αντικειμενοστραφής Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Συστήματα Πολυμέσων Ενότητα 5: Σαρωτές. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Week 9: Input / Output

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Σχεδίαση Δικτύων Υπολογιστών

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΜΑΘΗΜΑ: ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

Προγραμματισμός Διαδικτύου

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Υπολογιστικά Συστήματα

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Υπολογιστικά Συστήματα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Μοντελοποίηση Λογικών Κυκλωμάτων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Λογιστικές Εφαρμογές Εργαστήριο

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Μεταγλωττιστές. Ενότητα 5: Λεκτική ανάλυση (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τηλεπικοινωνίες. Ενότητα 6: Ψηφιακή Διαμόρφωση. Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ιστορία της μετάφρασης

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου Ενότητα 1 η : Εισαγωγή

Εισαγωγή στους Αλγορίθμους

Εισαγωγικές έννοιες θεωρίας Συστημάτων Αυτομάτου Ελέγχου

Σχεδίαση Δικτύων Υπολογιστών

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Transcript:

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Streams

Σκοποί ενότητας Σε αυτή την ενότητα ασχολούμαστε με τα Streams στη γλώσσα προγραμματισμού Java. 5

Περιεχόμενα ενότητας (1/3) Εισαγωγή στα Streams. Είδη Streams. Οι κλάσεις Writer/Reader και OutputStream/InputStream. Η κλάση System. Παράδειγμα εισόδου με την κλάση System. 6

Περιεχόμενα ενότητας (2/3) Παράδειγμα εξόδου με την κλάση System. Data Streams. Κατασκευαστής και Μέθοδοι του DataInputStream. Κατασκευαστής και Μέθοδοι του DataOutputStream. Data Sink Streams. 7

Περιεχόμενα ενότητας (3/3) Processing Streams. Console I/O. File Streams. Παράδειγμα File Reader/Writer. 8

Εισαγωγή στα Streams Stream. Ένα γενικό κανάλι, στο οποίο υπάρχει ροή δεδομένων. Με την βοήθεια των Streams, τα προγράμματα Java εισάγουν και εξάγουν δεδομένα, επικοινωνώντας. Μεταξύ τους. Με το σύστημα αρχείων (file system). Με κάποια συσκευή (device). 9

Είδη Streams InputStream OutputStream. Αποτελούν την βάση για όλα τα υπόλοιπα. DataInputStream DataOutputStream. Ανάγνωση/εγγραφή πρωτογενών τύπων δεδομένων της Java. BufferedInputStream BufferedOutputStream. Χρησιμοποιούνται για να αυξήσουν την ταχύτητα και απόδοση του συστήματος σε περιπτώσεις Ι/Ο. 10

Streams (1/2) Υπάρχουν διαφορετικοί τύποι Streams. Επιτρέπουν να διαβάζονται/γράφονται χαρακτήρες, Bytes, γραμμές και άλλα. Το πακέτο που χρησιμοποιείται για τα Streams στη Java είναι το java.io. Η κλάση System του πακέτου java.lang παρέχει τα τρία παρακάτω Streams. System.in standard input. Inputsteam και Είσοδος από το πληκτρολόγιο. 11

Streams (2/2) Η κλάση System του πακέτου java.lang παρέχει τα τρία παρακάτω Streams (Συνέχεια). System.out standard output. Printwriter. Έξοδος στην οθόνη. System.err standard error. Printwriter και Έξοδος στην οθόνη. 12

Οι κλάσεις Writer/Reader και OutputStream/InputStream Writer/Reader. Αφηρημένες κλάσεις. Επιτρέπουν την εγγραφή και ανάγνωση χαρακτήρων, αντίστοιχα. OutputStream/InputStream. Αφηρημένες κλάσεις. Επιτρέπουν την εγγραφή και την ανάγνωση Bytes, αντίστοιχα. 13

Η κλάση System H κλάση System περιέχει αρκετά βασικά αντικείμενα, τα οποία μπορούν να χρησιμοποιηθούν για λειτουργίες Ι/Ο. το αντικείμενο System.in, τύπου InputStream και βρίσκει εφαρμογή σε λειτουργίες εισόδου από το στάνταρ stream εισόδου. 14

Παράδειγμα εισόδου με την κλάση System 15

Παράδειγμα εξόδου με την κλάση System 16

Data Streams Γράφουν και διαβάζουν βασικούς τύπους δεδομένων της Java. Οι μέθοδοι ανάγνωσης προκαλούν ένα EOFexception όταν τελειώσουν τα δεδομένων. 17

Κατασκευαστής και Μέθοδοι του DataInputStream (1/2) Constructor. public DataInputStream(InputStream in). Μέθοδοι. read(byte[]). readboolean(). readbyte(). 18

Κατασκευαστής και Μέθοδοι του DataInputStream (2/2) Μέθοδοι (Συνέχεια). readchar(). readfloat(). readint(). readline(). readlong(). 19

Κατασκευαστής και Μέθοδοι του DataOutputStream (1/2) Constructor. public DataOutputStream(OutputStream out). Μέθοδοι. flush(). size(). 20

Κατασκευαστής και Μέθοδοι του DataOutputStream (2/2) Μέθοδοι (Συνέχεια). writechar(int). writedouble(double). writeint(int). 21

Data Sink Streams (1/2) Μπορούν να διαβάσουν ή να γράψουν στα data sinks όπως strings, files ή pipes. CharArrayReader/CharArrayWriter και ByteArrayInputStream/ByteArrayOutputStream. Διαβάζουν και γράφουν στη μνήμη. Μπορούν να εφαρμοστούν σε έναν πίνακα (Array). StringReader και StringWriter. Διαβάζουν και γράφουν σε ένα string buffer. 22

Data Sink Streams (2/2) PipedReader/PipedWriter και PipedInputStream/PipedOutputStream. Είναι τα συστατικά ενός Pipe. Τα Pipes δίνουν την έξοδο ενός προγράμματος ή νήματος (thread) ως είσοδο σε ένα άλλο. FileReader/FileWriter και FileInputStream/FileOutputStream. Διαβάζουν και γράφουν σε ένα αρχείο. 23

Processing Streams (1/4) BufferedReader/BufferedWriter και BufferedInputStream/BufferedOutputStream. Δημιουργούν ένα Buffer ενώ διαβάζουν και γράφουν βελτιώνοντας την ταχύτητα. FilterReader/FilterWriter και FilterInputStream/FilterOutputStream. Αφηρημένες κλάσεις. Φιλτράρουν τα δεδομένα. 24

Processing Streams (2/4) InputStreamReader και OutputStreamWriter. Είναι γέφυρες μεταξύ των Streams χαρακτήρων και των Bytes. InputStreamReader. Διαβάζει Bytes από ένα InputStream και τα μετατρέπει σε χαρακτήρες. Η OutputStreamWriter. Μετατρέπει χαρακτήρες σε Bytes και τα γράφει σε ένα OutputStream. 25

Processing Streams (3/4) ObjectInputStream και ObjectOutputStream. Serialization και deserialization ενός Object. SequenceInputStream. Δημιουργεί μία αλληλουχία πολλών InputStreams ενώνοντάς τα σε ένα. DataInputStream και DataOutputStream. Γράφουν και διαβάζουν βασικούς τύπους δεδομένων της Java. 26

Processing Streams (4/4) LineNumberReader και LineNumberInputStream. Διαβάζουν γραμμή - γραμμή ένα Stream. PrintWriter και PrintStream. Χρησιμοποιούνται συχνά. Περιέχουν μεθόδους για εύκολη εκτύπωση. Συνήθως άλλα Streams καταλήγουν σε αυτές τις δύο κλάσεις. 27

Console I/O (1/2) Οι κλάσεις system.in και system.out. Αυτές οι κλάσεις είναι τύπου InputStream και PrintStream, αντίστοιχα. Περιλαμβάνονται στο πακέτο java.lang. Συνήθως χρησιμοποιείται. 28

Console I/O (2/2) Για integer. 29

File Streams Ο μέθοδος δημιουργός (constructor) ενός File Stream δέχεται ως παραμέτρους. Ένα String για το File name ή ένα File Object. Όταν ένα Stream συνδεθεί με ένα αρχείο. Μπορούμε να διαβάσουμε ή να γράψουμε από/προς το αρχείο μέσω του Stream. Παρακάτω χρησιμοποιούμε τα Streams ώστε να αντιγράψουμε ένα αρχείο σε ένα άλλο. 30

Παράδειγμα File Reader/Writer 31

Βιβλιογραφία 1. Java προγραμματισμός, Όγδοη έκδοση, Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 2. «Προγραμματισμός Internet και World Wide Web», Deitel Paul J., Deitel Harvey M., Εκδόσεις Γκιούρδας Μ.. 3. «Πλήρες εγχειρίδιο της Java 6», Lemay C, Εκδόσεις Γκιούρδας Μ., Αθήνα 2007. 32

Τέλος Ενότητας 33