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

Σχετικά έγγραφα
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

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

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

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

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

10.1 Γενικά για τα streams

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

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

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

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

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

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

Week 9: Input / Output

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη

Εισαγωγή στον Προγραμματισμό

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Διαχείριση Δικτύων. Nikolas Bompetsis

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Εισαγωγή βιβλιοθηκών import java.applet.applet; import java.awt.graphics; ή import java.*.*

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

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Βασικά της γλώσσας JAVA

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Μάθημα 2 [10/11/2015]

Εισαγωγή στον Προγ/μό Η/Υ

Βασικά Στοιχεία της Java

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ιαδικτυακές Εφαρµογές

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

Mεταβλητές (variables) και Σταθερές (constants)

Προγραμματισμός ΙΙ (Java) 5. Διαχείριση αρχείων

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java

Streams Input / Output in C++ George Kastrinis

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Κατανεμημένα Συστήματα

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΚΑΙ ΕΞΕΤΑΣΤΕΑ ΥΛΗ. ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Με τις Γλώσσες Προγραμματισμού Pascal, C, C++, Java

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing

Κλάσεις και Αντικείµενα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

10 ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΔΕΔΟΜΕΝΩΝ

Βιβλιοθήκη stdio. Προγραμματισμός II 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Υποστηρικτικό υλικό Σημειώσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Τα βασικά για την γλώσσα Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση:

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Διδάσκων: Παναγιώτης Ανδρέου

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Γενικά (για τις γραπτές εξετάσεις)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

ΕΠΛ131 Αρχές Προγραμματισμού

Transcript:

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream ορίζεται µια «διαδροµή» µέσα από την οποία µεταφέρονται δεδοµένα από µια θέση σε µια άλλη. Κάθε stream είναι ένα αντικείµενο (στιγµιότυπο) java. Η πληροφορία που µεταφέρεται µέσα από ένα stream είναι µια ακολουθία δεδοµένων που έχουν µια πηγή ή ένα αποδέκτη.

ΤΥΠΟΙ STREAM (1) Με βάση την κατεύθυνση input streams (για ανάγνωση πληροφορίας, δηλ. αποστολή δεδοµένων από µια εξωτερική πηγή στο πρόγραµµα) Προγ. Input Stream Πηγή εδοµ. output streams (για αποθήκευση πληροφορίας, δηλ. αποστολή δεδοµένων από το πρόγραµµα σ ενα εξωτερικό προορισµό) Προγ. Output Stream Αποθήκη εδοµ.

ΤΥΠΟΙ STREAM (2) Με βάση τον τύπο της πληροφορίας byte streams(για µεταφορά ακεραίων 0-255: αριθµητικά δεδοµένα, εκτελέσιµα προγράµµατα, αρχεία bytecode κλπ) character streams (για µεταφορά χαρακτήρων: δεδοµένα αρχείων κειµένου, ιστοσελίδων κλπ)

ΚΛΑΣΕΙΣ STREAM (Ι/Ο) Περιέχονται στο πακέτο java.io Για byte streams InputStream, OutputStream (abstract) FileInputStream, FileOutputStream BufferedInputStream, BufferedOutputStream DataInputStream, DataOutputStream Για character streams Reader, Writer (abstract) FileReader, FileWriter BufferedReader, BufferedWriter

ΚΥΡΙΑ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Με την εκτέλεση κάθε προγράµµατος (εφαρµογής) δηµιουργούνται τρία (3) (στιγµιότυπα) streams: System.in (κύρια είσοδος) System.out (κύρια έξοδος) System.err (κύριο σφάλµα) Βασική έξοδος: System.out.println(); Βασική είσοδος: System.in.read(); (είσοδος ενός byte) System.in.read(byte b[]); (είσοδος ενός αριθµού bytes)

ΠΑΡΑ ΕΙΓΜΑ (1) import java.io.*; public class Inpdata{ public static void main() { char b='0'; try { System.out.println("Give a character: "); if ((b = (char)system.in.read())!= '\n') System.out.println(b); catch(ioexception e) {System.out.println(e);

ΠΑΡΑ ΕΙΓΜΑ (2) import java.io.*; public class MInpdata{ public static void main() { char b='0'; try { System.out.println("Give a character: "); for (int i=0; (b = (char)system.in.read())!= '\n'; i++) System.out.println(b); catch(ioexception e) {System.out.println(e);

ΠΑΡΑ ΕΙΓΜΑ (3) import java.io.*; public class MultInpdata{ public static void main() { byte [] b = new byte[10]; try { System.out.println("Write a string (max length=10): "); System.in.read(b); String s = new String(b); System.out.println(s); catch(ioexception e) {System.out.println(e);

ΙΑ ΙΚΑΣΙA ΕΙΣΟ ΟΥ 1. Άνοιγµα/ ηµιουργία ενός stream (π.χ. προκειµένου για αρχείο, δηµιουργούµε ένα στιγµιότυπο της FileInputStream και το συσχετίζουµε µε το αρχείο εισόδου) 2. Ανάγνωση δεδοµένων, ενόσω υπάρχουν, από την πηγή εισόδου (π.χ. µε τη βοήθεια µεθόδων της FileInputStream, όπως η read()) 3. Κλείσιµο του stream (π.χ. χρήση της µεθόδου close())

ΙΑ ΙΚΑΣΙA ΕΞΟ ΟΥ 1. Άνοιγµα/ ηµιουργία ενός stream (π.χ. προκειµένου για αρχείο, δηµιουργούµε ένα στιγµιότυπο της FileOutputStream και το συσχετίζουµε µε το αρχείο εξόδου) 2. Αποστολή δεδοµένων, ενόσω υπάρχουν, στον προορισµό εξόδου (π.χ. µε τη βοήθεια µεθόδων της FileOutputStream, όπως η write()) 3. Κλείσιµο του stream (π.χ. χρήση της µεθόδου close())

ΦΙΛΤΡΑΡΙΣΜΑ STREAM Ορισµός Φίλτρο είναι ένας τύπος stream που τροποποιεί τον τρόπο χειρισµού ενός stream. ιαδικασία 1. ηµιουργία ενός stream (εισόδου ή εξόδου). 2. Συσχέτιση φίλτρου µε το stream. 3. Ανάγνωση/αποστολή δεδοµένων από/προς το φίλτρο.

BYTE STREAMS ΑΡΧΕΙΩΝ (1) Είναι στιγµιότυπα των FileInputStream και FileOutputStream, που είναι υποκλάσεις των InputStream και OutputStream αντίστοιχα. Εισόδου ηµιουργία: FileInputStream(String fname) Ανάγνωση: read() (επόµενο byte: ακέραιος ή 1) read(byte[], int, int) (αριθ. Bytes ή 1) θέση 1ου byte αριθµός bytes

ΠΑΡΑ ΕΙΓΜΑ import java.io.*; public class ReadFile{ public static void main(){ try {FileInputStream fis1 = new FileInputStream( test.dat ); boolean eof = false; int count = 0; while (!eof) { int inp = fis1.read(); System.out.print(inp + ); if (inp = = -1) eof = true; else count++; fis1.close(); System.out.println( \nbytes read: + count); catch(ioexception e) {System.out.println(e);

BYTE STREAMS ΑΡΧΕΙΩΝ (2) Εξόδου ηµιουργία: FileOutputStream(String fname) Εγγραφή: write(int) (εγγραφή byte) write(byte[], int, int) (εγγραφή πολλών bytes) θέση 1ου byte αριθµός bytes

ΠΑΡΑ ΕΙΓΜΑ import java.io.*; public class WriteFile{ public static void main(){ int [] data = {71, 73, 65, 0, 56, 33, 18, 22, 0, 0, 250, 178, 4, 2, 0, 0, 65, 0 try {FileOutputStream fos1 = new FileInputStream( testo.dat ); for (int i=0; i < data.length; i++) fos1.write(data[i]); fos1.close(); catch(ioexception e) {System.out.println(e);

BUFFERED (ΕΝΤΑΜΙΕΥΜΕΝΑ) STREAMS Για αποδοτικότερη χρήση, χρησιµοποιούν ένα buffer (ενταµιευτή) για ενδιάµεση αποθήκευση δεδοµένων. Εξόδου ηµιουργία: BufferedOutputStream(OutputStream) BufferedOutputStream(OutputStream, int) Εγγραφή:write(int),write(byte[], int, int) Άδειασµα buffer: flush() Εισόδου ηµιουργία: BufferedInputStream(InputStream) BufferedInputStream(InputStream, int) Ανάγνωση: read(), read (byte[], int, int)

BYTE STREAMS Ε ΟΜΕΝΩN Για να εργαστούµε µε δεδοµένα που δεν παριστάνονται σαν bytes ή χαρακτήρες. Εξόδου ηµιουργία: DataOutputStream(OutputStream) Εγγραφή:writeDouble(double),writeFloat(float) writeint(int),writelong(long),writeshort(int), writeboolean(boolean) Εισόδου ηµιουργία: DataInputStream(InputStream) Ανάγνωση: readdouble(), readfloat(), readint(), readlong(), readshort(), readboolean()

CHARACTER STREAMS ΑΡΧΕΙΩΝ (1) Είναι στιγµιότυπα των FileReader και FileWriter, που είναι υποκλάσεις των InputStreamReader και OutputStreamWriter αντίστοιχα. Εισόδου ηµιουργία: FileReader(String fname) Ανάγνωση: read() read(char[], int, int) θέση 1ου χαρακτήρα αριθµός χαρακτήρων

CHARACTER STREAMS ΑΡΧΕΙΩΝ (2) Εξόδου ηµιουργία: FileWriter(String fname), FileWriter(String fname, boolean) Εγγραφή: write(int) write(char[], int, int) θέση 1ου χαρακτήρα αριθµός χαρακτήρων