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

Σχετικά έγγραφα
Οντοκεντρικός Προγραμματισμός

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

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

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

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

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

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

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

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 4 ο XPath

Τεχνικό Σχζδιο - CAD

Αποτυπώςεισ & Τεκμηρίωςη Αντικειμζνων

Ειδικζσ Ναυπηγικζσ Καταςκευζσ και Ιςτιοφόρα κάφη (Ε)

Κλαςικι Ηλεκτροδυναμικι

Διδακτικι τθσ Γλϊςςασ Ι

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

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

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Ερωτήσεις επανάληψης. Ενδοκρινείς αδένες. Τμήμα Ιαηρικής Πανεπιζηήμιο Παηρών

ΘΕΡΜΟΔΤΝΑΜΙΚΗ IΙ. Ενότθτα 4: Χθμικζσ αντιδράςεισ αερίων τακερά Χθμικισ Ιςορροπίασ Πρότυπθ Ελεφκερθ Ενζργεια

Aντιπτζριςη (ΕΠ027) Ενότητα 10

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

Aντιπτζριςη (ΕΠ027) Ενότητα 6

Aντιπτζριςθ (ΕΠ027) Ενότθτα 12

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

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

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

Aντιπτζριςη (ΕΠ027) Ενότητα 5

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

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

Αναπαράςταςθ Γνώςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 5: Κανόνεσ Λογικι και Συμπεραςμόσ

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

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

Ψθφιακι Επεξεργαςία ιματοσ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Ειςαγωγή ςτη διδακτική των γλωςςών

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Υγρών Αποβλιτων Ενότθτα 9: Απολφμανςθ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

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

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 3: Μθδενικόσ Νόμοσ - Ζργο. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

ΘΕΡΜΟΔΤΝΑΜΙΚΗ Ι. Ενότθτα 1: Βαςικά χαρακτθριςτικά τθσ Θερμοδυναμικισ. ογομϊν Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικϊν Μθχανικϊν

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

Τεχνολογία Περιβάλλοντοσ: Διαχείριςθ Στερεών Αποβλιτων Ενότθτα 4: Μθχανικόσ Διαχωριςμόσ. Κορνάροσ Μιχαιλ Πολυτεχνικι Σχολι Τμιμα Χθμικών Μθχανικών

Τεχνθτι Νοθμοςφνθ. Ενότθτα 2: Αναπαράςταςθ Γνϊςθσ και Συλλογιςμόσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

Διαγλωςςική Επικοινωνία

Διδακτικι τθσ Γλϊςςασ Ι

Εκκλθςιαςτικό Δίκαιο ΙΙΙ (Μεταπτυχιακό)

Επιχειρηςιακή Έρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

ΔΙΔΑΚΣΙΚΗ ΣΗ ΠΑΙΔΑΓΩΓΙΚΗ ΓΤΜΝΑΣΙΚΗ ΙΙ

ΘΕΡΜΟΔΤΝΑΜΙΚΘ IΙ. Ενότθτα 11: Διαλυτότθτα Ιδανικά διαλφματα ογομών Μπογοςιάν Πολυτεχνικι χολι Σμιμα Χθμικών Μθχανικών

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

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

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 2 ο - DTD

Ειςαγωγι ςτισ Μεταφραςτικζσ Σπουδζσ

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Aντιπτζριςη (ΕΠ027) Ενότητα 9

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

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

Ψθφιακι Επεξεργαςία ιματοσ

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

Διαγλωςςική Επικοινωνία

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

Παράγοντεσ υμμετοχήσ Ενηλίκων ςτην Εκπαίδευςη: Ζητήματα Κινητοποίηςησ και Πρόςβαςησ ςε Οργανωμζνεσ Εκπαιδευτικζσ Δραςτηριότητεσ

Ψθφιακά Ηλεκτρονικά. Ενότθτα 5 : Ανάλυςθ κυκλώματοσ με D και JK FLIP- FLOP Φώτιοσ Βαρτηιώτθσ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Τεχνθτι Νοθμοςφνθ. Ενότθτα 4: Στρατθγικζσ Ελζγχου Επίλυςθσ. Ιωάννθσ Χατηθλυγεροφδθσ Πολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Πλθροφορικισ

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

Aντιπτζριςη (ΕΠ027) Ενότητα 2

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

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

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

Μυκθτολογικζσ αςκζνειεσ δενδρωδϊν και αμπζλου

Ελλθνικι Δθμοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 13 : Άλλοι Μετρθτζσ Φϊτιοσ Βαρτηιϊτθσ

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

Ελλθνικι Δθμοκρατία Σεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Ψθφιακά Ηλεκτρονικά. Ενότθτα 9 : Διαδικαςία φνκεςθσ Φϊτιοσ Βαρτηιϊτθσ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

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

Αναπαράςταςθ Γνϊςθσ ςτον Παγκόςμιο Ιςτό Ενότθτα 2: XML Δομθμζνα Ζγγραφα Ιςτοφ, Μζροσ 1 ο - XML

ΣΑ ΑΠΟΚΡΤΦΑ ΕΤΑΓΓΕΛΙΑ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

ΘΕΟΛΟΓΙΑ ΚΑΙΝΗΣ ΔΙΑΘΗΚΗΣ

Ειςαγωγή ςτη διδακτική των γλωςςών

Διδακτικζσ Προςεγγίςεισ Διερευνθτικισ Μάκθςθσ

ΕΙΚΟΝΙΚΟ ΕΡΓΑΣΗΡΙΟ ΠΑΙΔΟΚΑΡΔΙΟΛΟΓΙΑ Ενότητα: Φυςιολογία εμβρυϊκισ και περιγεννθτικισ κυκλοφορίασ

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

Ψθφιακι Επεξεργαςία ιματοσ

Ειδικά Θζματα Βάςεων Δεδομζνων

ΠΟΤΔΗ ΣΗ ΤΝΟΠΣΙΚΗ ΠΑΡΑΔΟΗ ΚΑΙ ΣΗΝ Q

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

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

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

Ειςαγωγή ςτη διδακτική των γλωςςών

Ψθφιακι Επεξεργαςία ιματοσ

ΠΡΟΠΟΝΗΣΙΚΕ ΠΡΟΑΡΜΟΓΕ ΣΙ ΑΝΑΠΣΤΞΙΑΚΕ ΗΛΙΚΙΕ (555)

ΘΕΜΟΔΥΝΑΜΙΚΘ Ι. Ενότθτα 7: Θεωριματα και ςχζςεισ μερικϊν παραγϊγων Σχζςεισ Maxwell Θερμοδυναμικζσ Καταςτατικζσ Εξιςϊςεισ

Ψθφιακι Επεξεργαςία ιματοσ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Transcript:

Οντοκεντρικόσ Ρρογραμματιςμόσ Ενότθτα 3: JAVA: ΕΞΑΙΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Είςοδοσ - Ζξοδοσ Ιωάννθσ Χατηθλυγεροφδθσ Ρολυτεχνικι Σχολι Τμιμα Μθχανικϊν Η/Υ & Ρλθροφορικισ

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

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

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

ΤΥΡΟΙ STREAM (2) Με βάςθ τον τφπο τθσ πλθροφορίασ byte streams(για μεταφορά δεδομζνων πρωτογενϊν τφπων ι αλφαρικμθτικϊν τθσ java) character streams (για μεταφορά χαρα κτιρων/κειμζνου από αρχεία που τα παριςτάνουν μζςω κωδικοποιιςεων ASCII ι Unicode) 5/41

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

ΚΛΑΣΕΙΣ STREAM (Ι/Ο) Object InputStream FileInputStream FilterInputStream BufferedInputStream DataInputStream OutputStream FileOutputStream FilterOutputStream BufferedOutputStream DataOutputStream RandomAccessFile File 7/41

ΚΥΙΑ ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ(1) Με τθν εκτζλεςθ κάκε προγράμματοσ (εφαρμογισ) δθμιουργοφνται τρία (3) (ςτιγμιότυπα) streams: System.in System.out System.err (κφρια είςοδοσ) (κφρια ζξοδοσ) (κφριο ςφάλμα) 8/41

ΚΥΙΑ ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ(2) Βαςικι ζξοδοσ: System.out.println(String s); (ζξοδοσ string) System.out.write(int x); (ζξοδοσ ενόσ byte) System.out.write(byte b[]); (ζξοδοσ ενόσ αρικμοφ bytes από πίνακα) (Μέθοδοι ηης OutputStream) Βαςικι είςοδοσ: System.in.read(); System.in.read(byte b[]); (Μέθοδοι ηης InputStream) (Επιςτρζφει ζναν απρόςθμο ακζραιο 0-255 ι -1) (είςοδοσ ενόσ byte) (είςοδοσ ενόσ αρικμοφ bytes ςε πίνακα) Πλεσ, πλθν τθσ println( ): throws IOException 9/41

ΡΑΑΔΕΙΓΜΑ (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); 10/41

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

ΡΑΑΔΕΙΓΜΑ (3) import java.io.*; public class MInpdata2{ 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); 12/41

ΡΑΑΔΕΙΓΜΑ (4) import java.io.*; public class MInpdata3{ public static void main() { byte [] b = new byte[10]; try { System.out.println("Write a string (max length=10): "); System.in.read(b); System.out.write(b); catch(ioexception e){ System.out.println(e); 13/41

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

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

ΦΙΛΤΑΙΣΜΑ STREAM Οριςμόσ Φίλτρο είναι ζνασ τφποσ stream που τροποποιεί τον τρόπο χειριςμοφ ενόσ άλλου stream. Διαδικαςία 1. Δθμιουργία ενόσ stream (ειςόδου ι εξόδου). 2. Συςχζτιςθ φίλτρου με το stream. 3. Ανάγνωςθ/αποςτολι δεδομζνων από/προσ το φίλτρο (αντί του stream). 16/41

BYTE STREAMS ΑΧΕΙΩΝ (1) Είναι ςτιγμιότυπα των FileInputStream και FileOutputStream, που είναι υποκλάςεισ των InputStream και OutputStream αντίςτοιχα. (Για να μποροφμε να διαβάςουμε δεδομζνα από ι να γράψουμε δεδομζνα ςε ζνα αρχείο πρζπει να το ςυςχετίςουμε μ ζνα stream ειςόδου ι εξόδου αντίςτοιχα.) Ειςόδου Δθμιουργία: FileInputStream(String fname) Ανάγνωςθ: read() (επόμενο byte: ακζραιοσ ι 1) read(byte[], int, int) (αρικ. Bytes ι 1) κζςθ 1ου byte αρικμόσ bytes 17/41

ΡΑΑΔΕΙΓΜΑ 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); 18/41

BYTE STREAMS ΑΧΕΙΩΝ (2) Εξόδου Δθμιουργία: FileOutputStream(String fname) Εγγραφι: write(int) (εγγραφι byte) write(byte[], int, int) (εγγραφι πολλϊν bytes) κζςθ 1ου byte αρικμόσ bytes 19/41

ΡΑΑΔΕΙΓΜΑ 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 FileOutputStream( testo.dat ); for (int i=0; i < data.length; i++) fos1.write(data[i]); fos1.close(); catch(ioexception e) { System.out.println(e); 20/41

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) 21/41

ΡΑΑΔΕΙΓΜΑ import java.io.*; public class CopyFile{ public static void main(string args []){ try {FileInputStream fis = new FileInputStream(args[0]); BufferedInputStream bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream(args[1]); BufferedOutputStream bos = new BufferedOutputStream(fos); int nbytes; while (bis.available() > 0) { nbytes = bis.read(); bos.write(nbytes); bis.close(); bos.flush(); bos.close(); catch(ioexception e) {System.out.println(e); 22/41

Ειςόδου BYTE STREAMS ΔΕΔΟΜΕΝΩN Για να εργαςτοφμε με δεδομζνα που δεν παριςτάνονται ςαν ακολουκίεσ bytes, αλλά ςαν λογικά τμιματα. Εξόδου Δθμιουργία: Δθμιουργία: DataOutputStream(OutputStream) Εγγραφι: writedouble(double),writefloat(float) writeint(int),writelong(long),writeshort(int), writebyte (int), writeboolean(boolean) DataInputStream(InputStream) Ανάγνωςθ: readdouble(),readfloat(),readint(),readlong(), readshort(), readbyte (), readboolean() 23/41

ΡΑΑΔΕΙΓΜΑ import java.io.*; public class WriteFile{ public static void main(){ double [] data = {71.2, 73.1, 65.0, 0.0, 56.4, 33.4, 18.7, 22.0, 0, 0, 250.0, 178.3, 4.2, 2.1, 0, 0, 6.35, 0; try {FileOutputStream fos1 = new FileOutputStream("testr.dat"); DataOutputStream fods1 = new DataOutputStream(fos1); for (int i=0; i < data.length; i++) fods1.writedouble(data[i]); fods1.close(); catch(ioexception e) {System.out.println(e); 24/41

ΡΑΑΔΕΙΓΜΑ import java.io.*; public class ReadFile{ public static void main(){ try { FileInputStream fis1 = new FileInputStream("testr.dat"); DataInputStream fids1 = new DataInputStream(fis1); int count = 0; try { while (true) { double inp = fids1.readdouble(); System.out.print(inp + " \n"); count++; catch(eofexception eof) {fids1.close(); System.out.println("\nNums read: " + count); catch(ioexception e) {System.out.println("Error-- " + e.tostring()); 25/41

ΡΑΑΔΕΙΓΜΑ import java.io.*; public class WritePrimeNums{ public static void main(string args []){ int num = 2; try { FileOutputStream fis = new FileOutputStream( primes.dat ); BufferdOutputStream bos = new BufferedInputStream(fis); DataOutputStream dos = new DataOutputStream(bos); while (num < 400) { if (isprime(num)) dos.writint(num); num++; dos.close(); catch(ioexception e) {System.out.println(e); 26/41

ΡΑΑΔΕΙΓΜΑ import java.io.*; public class ReadPrimeNums{ public static void main(string args []){ try {DataInputStream dos = new DataInputStream( new BufferedInputStream( new FileOutputStream( primes.dat ))); try {while (true) { int num = dos.readint(); System.out.println(num + ); catch (EOFException eof) { finally {dos.close(); catch(ioexception e) {System.out.println( Error: + e.tostring() ); 27/41

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

CHARACTER STREAMS ΑΧΕΙΩΝ (2) Για ανάγνωςθ ολόκλθρθσ γραμμισ, αντί χαρακτιρα. Δημιοσργία: BufferedReader(Reader) BufferedReader(Reader, int) Ανάγνωζη: read(), read (byte[], int, int) readline() (επιςτρζφει ζνα String, που είναι μια γραμμι κειμζνου) 29/41

ΔΙΑΧΕΙΙΣΗ ΑΧΕΙΩΝ ΑΜΕΣΗΣ ΡΟΣΡΕΛΑΣΗΣ (1) Μζχρι τϊρα αναφερόμαςτε ςε αρχεία ςειριακισ προςπζλαςθσ (για να βροφμε μια πλθροφορία πρζπει να περάςουμε από όλεσ τισ προθγοφμενεσ) Μποροφμε όμωσ να δθμιουργιςουμε και αρχεία τυχαίασ προςπζλαςθσ (random access), όπου μποροφμε να μεταβαίνουμε ςε ζνα τμιμα πλθροφορίασ χωρίσ να είναι απαραίτθτο να περάςουμε απ όλα τα προθγοφμενα. 30/41

ΔΙΑΧΕΙΙΣΗ ΑΧΕΙΩΝ ΑΜΕΣΗΣ ΡΟΣΡΕΛΑΣΗΣ (2) Η δθμιουργία και διαχείριςθ αρχείων τυχαίασ προςπζλαςθσ γίνεται μζςω τθσ κλάςθσ RandomAccessFile. Δημιοσργοί: (και οι δφο throws FileNotFoundException) RandomAccessFile (String name, String mode) RandomAccessFile (File name, String mode) αντικείμενο αρχείου (βλ. αργότερα) Κανονίηει τον τρόπο ανοίγματοσ, π.χ. r (για ανάγνωςθ μόνο), rw (για ανάγνωςθ και εγγραφι) 31/41

ΔΙΑΧΕΙΙΣΗ ΑΧΕΙΩΝ ΑΜΕΣΗΣ ΡΟΣΡΕΛΑΣΗΣ (3) Οι μζκοδοι ανάγνωςθσ και εγγραφισ είναι οι ίδιεσ με αυτζσ των byte streams αρχείων και δεδομζνων. Ζνα χαρακτθριςτικό των αρχείων τυχαίασ προςπζλαςθσ είναι ότι τα δεδομζνα τουσ διαβάηονται και γράφονται αρχίηοντασ όχι απαραίτθτα από τθν αρχι, αλλά από κάποια κζςθ του δείκτθ που κακορίηουμε. Αυτό γίνεται με τθ μζκοδο (public void): seek (long index) (η οποία throws IOException) Μετακινεί τον δείκτθ ακριβϊσ πριν από το (index+1) byte του αρχείου. Το πρϊτο byte ενόσ αρχείου είναι ςτθ κζςθ 0. 32/41

ΔΙΑΧΕΙΙΣΗ ΑΧΕΙΩΝ ΑΜΕΣΗΣ ΡΟΣΡΕΛΑΣΗΣ (4) Οι εντολζσ/μζκοδοι ανάγνωςθσ και εγγραφισ ενεργοφν πάντα ςτθν τρζχουςα κζςθ του δείκτθ ςτο αρχείο. Η εκτζλεςι τουσ ζχει ςαν αποτζλεςμα τθ μετακίνθςθ του δείκτθ ςτθν επόμενθ κζςθ. Η RandomAccessFile παρζχει και άλλεσ χριςιμεσ μεκόδουσ, όπωσ: public long getfilepointer() public long length() public void setlength(long newlen) (Όλες throws IOException) Επιςτρζφει τθν τιμι του δείκτθ. Επιςτρζφει το μικοσ του αρχείου ςε bytes. Κάνει το μικοσ του αρχείου ίςο με newlen. 33/41

ΑΝΤΙΚΕΙΜΕΝΑ ΑΧΕΙΩΝ(1) Τα αντικείμενα αρχείων αντιπροςωπεφουν ςυγκεκριμζνα αρχεία ι καταλόγουσ και χρθςιμοποιοφνται όχι για ανάγνωςθ ι εγγραφι, αλλά για τθ διαχείριςθ πλθροφοριϊν ςχετικϊν με τα «φυςικά» χαρακτθριςτικά αρχείων ι καταλόγων. Δθμιουργοφνται ωσ ςτιγμιότυπα τθσ κλάςθσ File (3 δθμιουργοί): File (String name) File (String path, String name) File (File directory, String name) 34/41

ΑΝΤΙΚΕΙΜΕΝΑ ΑΧΕΙΩΝ(2) Παράδειγμα File mydir = new File( c:\\ihatz\\java ); (1οσ δθμ.) File myfile = new File(myDir, test.dat ); (3οσ δθμ.) Οι δφο αυτζσ προτάςεισ μποροφν να ςυνοψιςτοφν: File myfile=new File( c:\\ihatz\\java, test.dat ) (2οσ δθμ.) Η File παρζχει πολλζσ μεκόδουσ: exists(), isfile(), isdirectory(), isabsolute(), canread(), canwrite(), delete() (όλες ηύποσ boolean) getname(), getparent(), getpath() (όλες ηύποσ String) 35/41

Χρθματοδότθςθ Το παρόν εκπαιδευτικό υλικό ζχει αναπτυχκεί ςτo πλαίςιo του εκπαιδευτικοφ ζργου του διδάςκοντα. Το ζργο «Ανοικτά Ακαδθμαϊκά Μακιματα ςτο Πανεπιςτιμιο Ακθνών» ζχει χρθματοδοτιςει μόνο τθν αναδιαμόρφωςθ του εκπαιδευτικοφ υλικοφ. Το ζργο υλοποιείται ςτο πλαίςιο του Επιχειρθςιακοφ Ρρογράμματοσ «Εκπαίδευςθ και Δια Βίου Μάκθςθ» και ςυγχρθματοδοτείται από τθν Ευρωπαϊκι Ζνωςθ (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εκνικοφσ πόρουσ. 36/41

Σθμείωμα Ιςτορικοφ Εκδόςεων Ζργου Το παρόν ζργο αποτελεί τθν ζκδοςθ 1.0. 37/41

Σθμείωμα Αναφοράσ Copyright: Ρανεπιςτιμιον Ρατρϊν, Ιωάννθσ Χατηθλυγεροφδθσ, 2015. «Οντοκεντρικόσ Ρρογραμματιςμόσ». Ζκδοςθ: 1.0. Ράτρα 2015. Διακζςιμο από τθ δικτυακι διεφκυνςθ: https://eclass.upatras.gr/courses/ceid1105 38/41

Σθμείωμα Αδειοδότθςθσ Το παρόν υλικό διατίκεται με τουσ όρουσ τθσ άδειασ χριςθσ Creative Commons Αναφορά, Μθ Εμπορικι Χριςθ Ραρόμοια Διανομι 4.0 *1+ ι μεταγενζςτερθ, Διεκνισ Ζκδοςθ. Εξαιροφνται τα αυτοτελι ζργα τρίτων π.χ. φωτογραφίεσ, διαγράμματα κ.λ.π., τα οποία εμπεριζχονται ςε αυτό και τα οποία αναφζρονται μαηί με τουσ όρουσ χριςθσ τουσ ςτο «Σθμείωμα Χριςθσ Ζργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ωσ Μθ Εμπορικι ορίηεται θ χριςθ: που δεν περιλαμβάνει άμεςο ι ζμμεςο οικονομικό όφελοσ από τθν χριςθ του ζργου, για το διανομζα του ζργου και αδειοδόχο που δεν περιλαμβάνει οικονομικι ςυναλλαγι ωσ προχπόκεςθ για τθ χριςθ ι πρόςβαςθ ςτο ζργο που δεν προςπορίηει ςτο διανομζα του ζργου και αδειοδόχο ζμμεςο οικονομικό όφελοσ (π.χ. διαφθμίςεισ) από τθν προβολι του ζργου ςε διαδικτυακό τόπο Ο δικαιοφχοσ μπορεί να παρζχει ςτον αδειοδόχο ξεχωριςτι άδεια να χρθςιμοποιεί το ζργο για εμπορικι χριςθ, εφόςον αυτό του ηθτθκεί.

Διατιρθςθ Σθμειωμάτων Οποιαδιποτε αναπαραγωγι ι διαςκευι του υλικοφ κα πρζπει να ςυμπεριλαμβάνει: το Σθμείωμα Αναφοράσ το Σθμείωμα Αδειοδότθςθσ τθ διλωςθ Διατιρθςθσ Σθμειωμάτων το Σθμείωμα Χριςθσ Ζργων Τρίτων (εφόςον υπάρχει) μαηί με τουσ ςυνοδευόμενουσ υπερςυνδζςμουσ. 40/41

Σθμείωμα Χριςθσ Ζργων Τρίτων 41/41