Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Είσοδος/Έξοδος σε αρχεία. Ρεύµατα - Streams

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Είσοδος/Έξοδος σε αρχεία. Ρεύµατα - Streams"

Transcript

1 Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 7η: 12/04/2006 & 13/04/ Είσοδος/Έξοδος σε αρχεία File I/O 2 Ρεύµατα - Streams Ένα ρεύµα (stream) είναι ένα αντικείµενο το οποίο επιτρέπει τη ροή δεδοµένων µεταξύ ενός προγράµµατος και κάποιας συσκευής εισόδου/εξόδου ή αρχείου Εάν τα δεδοµένα ρέουν προς το πρόγραµµα, τότε το ρεύµα λέγεται ρεύµα εισόδου (input stream) Εάν τα δεδοµέναρέουναπότοπρόγραµµα, τότε το ρεύµα λέγεται ρεύµα εξόδου(output stream) 3 1

2 Ρεύµατα - Streams Τα ρεύµατα εισόδου µπορεί να ρέουν από το πληκτρολόγιο ή από κάποιο αρχείο System.in είναι ένα ρεύµα εισόδου που συνδέεται στο πληκτρολόγιο Scanner keyboard = new Scanner(System.in); Τα ρεύµατα εξόδου µπορεί να ρέουν προς την οθόνη ή προς κάποιο αρχείο System.out είναι ένα ρεύµα εξόδουπουσυνδέεται στην οθόνη System.out.println("Output stream"); 4 Αρχεία κειµένου και υαδικά αρχεία Τα αρχεία που σχεδιάζονται για ανάγνωση από ανθρώπους, και µπορούν να διαβαστούν ή να γραφούν µεένανσυντάκτηκειµένου (editor) αποκαλούνται αρχεία κειµένου (text files) Τα αρχεία κειµένου αποκαλούνται επίσης ASCII αρχεία, επειδή τα δεδοµένα που περιέχουν είναι κωδικοποιηµένα µε ASCII σχήµα κωδικοποίησης Ένα πλεονέκτηµα τωναρχείωνκειµένου είναι ότι συνήθως είναι τα ίδια σε όλους τους υπολογιστές, και έτσι µπορούν να τα µετακινούµε από υπολογιστή σε υπολογιστή χωρίς προβλήµατα συµβατότητας 5 Αρχεία κειµένου και υαδικά αρχεία Τα αρχεία που σχεδιάζονται προς ανάγνωση από προγράµµατα και αποτελούνται από ακολουθίες δυαδικώνψηφίωναποκαλούνταιδυαδικά αρχεία (binary files) Ταδυαδικάαρχείασχεδιάζονταινααναγνωστούναπό τον ίδιο τύπο υπολογιστή και την ίδια γλώσσα προγραµµατισµού µε την οποία δηµιουργήθηκε το αρχείο Ένα πλεονέκτηµα των δυαδικών αρχείων είναι ότι παρέχουν πιο αποδοτικό τρόπο επεξεργασίας από ότι τα αρχεία κειµένου ιαφορετικά από ότι στα περισσότερα δυαδικά αρχεία, τα δυαδικά αρχεία στη Java έχουν επιπλέον το πλεονέκτηµα ότι είναι ανεξάρτητα από την πλατφόρµα όπου δηµιουργήθηκαν 6 2

3 Γράφοντας σε ένα αρχείο κειµένου ΗκλάσηPrintWriter είναι µια κλάση ρεύµατος που µπορεί να χρησιµοποιηθεί για να γράψουµε σεένααρχείοκειµένου Κάθε αντικείµενο της κλάσης PrintWriter έχει τις µεθόδους print και println Αυτές είναι παρόµοιες µετιςαντίστοιχεςµεθόδους του αντικειµένου System.out, αλλά χρησιµοποιούνται για έξοδο σε αρχείο κειµένου, και όχι για έξοδο στην οθόνη 7 Γράφοντας σε ένα αρχείο κειµένου Όλες οι κλάσεις για I/O σε αρχείο που περιγράφουµε παρακάτω περιέχονται στο package java.io, καιέτσιένα πρόγραµµα πουχρησιµοποιεί την PrintWriter πρέπει να ξεκινά µε ένα σύνολο δηλώσεων import: import java.io.printwriter; import java.io.fileoutputstream; import java.io.filenotfoundexception; ΗκλάσηPrintWriter δεν έχει constructor που δέχεται ως όρισµα τοόνοµα κάποιου αρχείου ως όρισµά του Χρησιµοποιεί µια άλλη κλάση, την FileOutputStream, για να µετατρέψει το όνοµα ενός αρχείου σε αντικείµενοτοοποίοµπορεί να χρησιµοποιηθεί ως όρισµα στονconstructor PrintWriter 8 Γράφοντας σε ένα αρχείο κειµένου Ένα ρεύµα της κλάσης PrintWriter δηµιουργείται και συνδέεται σε ένα αρχείο κειµένου για εγγραφή ως εξής: PrintWriter outputstreamname; outputstreamname = new PrintWriter(new FileOutputStream(FileName)); ΗκλάσηFileOutputStream δέχεται ως όρισµαέναstring που αναπαριστά το όνοµααρχείου ΗκλάσηPrintWriter δέχεται ως όρισµα το ανώνυµο αντικείµενο τύπου FileOutputStream 9 3

4 Γράφοντας σε ένα αρχείο κειµένου Αυτό παράγει ένα αντικείµενο της κλάσης PrintWriter το οποίο συνδέεται µε τοαρχείο FileName Η διαδικασία σύνδεσης ενός ρεύµατος σε ένα αρχείο αποκαλείται άνοιγµα τουαρχείου(opening the file) Εάντοαρχείουπάρχειήδη, τότε η παραπάνω διαδικασία έχει ως αποτέλεσµα ναχαθούντα προηγούµενα δεδοµένα του αρχείου Εάντοαρχείοδενυπάρχει, τότε δηµιουργείται ένα νέο, κενό αρχείο µε όνοµα FileName Μετά από αυτό, οι µέθοδοι print και println µπορούν να χρησιµοποιηθούν για να γράψουµε στοαρχείο 10 Γράφοντας σε ένα αρχείο κειµένου Όταν ένα αρχείο κειµένου ανοίγει µε τον τρόπο αυτό, µπορεί να πεταχτεί µια εξαίρεση FileNotFoundException Αυτό πρακτικά σηµαίνει ότι το αρχείο δεν µπόρεσε να δηµιουργηθεί Αυτός ο τύπος της εξαίρεσης µπορεί επίσης να πεταχτεί όταν ένα πρόγραµµα επιχειρεί να ανοίξει ένα αρχείο για ανάγνωση όταν το αρχείο αυτό δεν υπάρχει Εποµένως είναι απαραίτητο να περικλείουµεαυτόντον κώδικα σε µπλοκ διαχείρισης εξαιρέσεων Το αρχείο θα µπορούσε να ανοιχτεί µέσα στο µπλοκ try Το µπλοκ catch θα µπορούσε να πιάσει και να διαχειριστεί µια πιθανή εξαίρεση Η µεταβλητή που αναφέρεται στο αντικείµενο PrintWriter θα πρέπει να δηλώνεται εκτός του µπλοκ (και να αρχικοποιείται σε null) έτσι ώστε να µην είναι τοπική στο µπλοκ 11 Γράφοντας σε ένα αρχείο κειµένου Όταν τερµατίζεται ένα πρόγραµµαπουγράφεισε αρχείο, θα πρέπει πάντα να κλείνει το ρεύµαπου είναι συνδεδεµένο στο αρχείο outputstreamname.close(); Αυτό επιτρέπει στο σύστηµα νααπελευθερώσειτους πόρους που χρησιµοποιούνται για να συνδεθεί το ρεύµα στοαρχείο Εάν το πρόγραµµα δεν κλείσει το αρχείο πριν τερµατιστεί, η Java θα το κλείσει αυτόµατα, αλλά είναι ασφαλέστερο να το κλείνουµερητά 12 4

5 Γράφοντας σε ένα αρχείο κειµένου Τα ρεύµατα εξόδου που συνδέονται σε αρχεία είναι συνήθως buffered Αντί να γράφουµε άµεσα (physically) στοαρχείοτο συντοµότερο δυνατό, τα δεδοµένα αποθηκεύονται προσωρινά σε µια τοποθεσία, τον επονοµαζόµενο buffer Όταν συσσωρευτούν αρκετά δεδοµένα, ήόταν ενεργοποιηθεί η µέθοδος flush, τα δεδοµένα στον buffer γράφονται όλα στο αρχείο Αυτό είναι πιο αποδοτικό, αφού οι άµεσες (χωρίς buffer) εγγραφές σε αρχείο είναι πιο αργές 13 Γράφοντας σε ένα αρχείο κειµένου Η µέθοδος close ενεργοποιεί τη µέθοδο flush, καιέτσιυπάρχειεγγύησηότιόλατα δεδοµένα θα εγγραφούν στο αρχείο πριν αυτό κλείσει Εάν ένα πρόγραµµα βασίζεταιστηjava για να κλείσει αυτόµατα το αρχείο, και το πρόγραµµα τερµατιστεί µη κανονικά, τότε όσα δεδοµένα εξόδου υπήρχαν στον buffer ίσως δεν εγγραφούν στο αρχείο Επίσης, εάν ένα πρόγραµµα γράφει σε ένα αρχείο και αργότερα ξανανοίξει για ανάγνωση το ίδιο αρχείο, θα πρέπει πρώτα να το έχει κλείσει Όσο συντοµότερα κλείσει ένα αρχείο αφού έχουµε γράψει σε αυτό, τόσο µικρότερηηπιθανότητανα δηµιουργηθεί κάποιο πρόβληµα 14 Ονόµατα αρχείων Οι κανόνες ονοµατολογία των αρχείων εξαρτώνται από το Λειτουργικό Σύστηµα, και όχι από τη Java Όταν το όνοµα ενός αρχείο δίνεται σε ένα java constructor για ένα ρεύµα, είναι απλά ένα string, και όχι ένας Java identifier (π.χ., "filename.txt") Τα επιθέµατα που χρησιµοποιούνται, όπως το.txt δεν έχουν ιδιαίτερη έννοια για ένα Java πρόγραµµα 15 5

6 Κάθε αρχείο έχει δυο ονόµατα Κάθε αρχείο εισόδου και αρχείο εξόδου που χρησιµοποιεί ένα πρόγραµµαέχειδυοονόµατα: 1. Το πραγµατικό όνοµα αρχείου που χρησιµοποιείται απότολειτουργικόσύστηµα 2. Το όνοµα τουρεύµατος που συνδέεται στο αρχείο Το πραγµατικό όνοµαχρησιµοποιείται για να γίνει η σύνδεση στο ρεύµα Το όνοµατουρεύµατος εξυπηρετεί ως προσωρινό όνοµαγιατοαρχείο, και είναι το όνοµαπουκυρίωςχρησιµοποιείται µέσα στο πρόγραµµα 16 IOException Όταν εκτελούµε I/O µε αρχεία υπάρχουν πολλές καταστάσεις στις οποίες µπορεί να πεταχτεί µια εξαίρεση, όπως η FileNotFoundException Πολλές από αυτές τις κλάσεις εξαιρέσεων είναι υποκλάσεις της κλάσης IOException ΗκλάσηIOException είναι η ριζική κλάση για µια ποικιλία κλάσεων εξαιρέσεων που σχετίζονται µετην είσοδο/έξοδο Αυτές οι κλάσεις εξαιρέσεων είναι όλες checked exceptions Εποµένως, πρέπει είτε να πιαστούν είτε να δηλωθούν σε µια δήλωση throws 17 Unchecked Exceptions Σε αντιδιαστολή, οι κλάσεις εξαιρέσεων NoSuchElementException, InputMismatchException, και IllegalStateException είναι όλες unchecked exceptions Οι unchecked exceptions δεν απαιτείται να πιαστούν ή να δηλωθούν µε µια δήλωση throws 18 6

7 Παγίδα : ένα µπλοκ try είναι µπλοκ Αφού η προσπάθεια ανοίγµατος ενός αρχείου, µπορεί να έχει ως αποτέλεσµα ναπεταχτείµια εξαίρεση, θα πρέπει να τοποθετείται µέσα σε ένα µπλοκ try Εάν η µεταβλητή για ένα αντικείµενο PrintWriter πρέπει να χρησιµοποιηθεί εκτός του µπλοκ αυτού, τότε η µεταβλητή πρέπει (προφανώς) να δηλωθεί εκτός του µπλοκ ιαφορετικά θα ήταν τοπική στο µπλοκ, και δεν θα µπορούσε να χρησιµοποιηθεί πουθενά αλλού Εάν δηλωνόταν µέσα στο µπλοκ και χρησιµοποιούνταν κάπου αλλού, ο compiler θα έδινε ένα µήνυµα λάθουςγια undefined identifier 19 Προσθήκη στο τέλος (append) ενός αρχείου κειµένου Γιαναδηµιουργήσουµεένααντικείµενο PrintWriter και να το συνδέσουµε σεένα αρχείο κειµένου για προσθήκη στο τέλος (appending), ένα δεύτερο όρισµα, που τίθεται στην τιµή true, πρέπει να χρησιµοποιηθεί στον constructor του αντικειµένου FileOutputStream outputstreamname = new PrintWriter(new FileOutputStream(FileName, true)); Μετά τη δήλωση αυτή, οι µέθοδοι print, println και/ή printf µπορεί να χρησιµοποιηθούν για να γράψουµεστοαρχείο Το νέο κείµενο θα γραφεί µετά το παλιό κείµενο στο αρχείο 20 Η µέθοδος tostring βοηθά στην έξοδο σε αρχείο κειµένου Εάν µια κλάση έχει κατάλληλη µέθοδο tostring(), και το anobject είναι ένα αντικείµενο της κλάσης αυτής, τότε το anobject µπορεί να χρησιµοποιηθεί ως όρισµα στο System.out.println, και θα παράξει κάποια έξοδο Το ίδιο ισχύει και µε τιςµεθόδους print και println της κλάσης PrintWriter outputstreamname.println(anobject); 21 7

8 Μέθοδοι της κλάσης PrintWriter (1/3) 22 Μέθοδοι της κλάσης PrintWriter (2/3) 23 Μέθοδοι της κλάσης PrintWriter (3/3) 24 8

9 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner ΗκλάσηScanner µπορεί να χρησιµοποιηθεί για να διαβάσουµε από το πληκτρολόγιο καθώς επίσης και για να διαβάσουµε από ένα αρχείο κειµένου Απλά αντικαθιστούµε τοόρισµα System.in (στον constructor της Scanner) µε ένακατάλληλορεύµα που είναι συνδεδεµένο σε ένα αρχείο κειµένου Scanner StreamObject = new Scanner(new FileInputStream(FileName)); Οι µέθοδοι της κλάσης Scanner για ανάγνωση συµπεριφέρονται µε τον ίδιο τρόπο ανεξάρτητα εάν διαβάζουν απότοπληκτρολόγιοήαπόένααρχείοκειµένου Για παράδειγµα, οι µέθοδοι nextint και nextline 25 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (1/4) 26 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (2/4) 27 9

10 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (3/4) 28 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (4/4) 29 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη Scanner Ένα πρόγραµµα που προσπαθεί να διαβάσει πέρα απότοτέλοςενόςαρχείουχρησιµοποιώντας µεθόδους της κλάσης Scanner θα έχει ως αποτέλεσµαναπεταχτείµια εξαίρεση Όµως, αντί να βασιζόµαστε στο µηχανισµό των εξαιρέσεωνγιανασηµατοδοτήσουν το τέλος αρχείου, ηκλάσηscanner παρέχει µεθόδους όπως την hasnextint και τη hasnextline Αυτές οι µέθοδοι µπορούν επίσης να χρησιµοποιηθούν για να ελέγξουν εάν το επόµενο token της εισόδου είναι στοιχείο εισόδου µε κατάλληλο τύπο 30 10

11 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextline (1/4) 31 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextline (2/4) 32 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextline (3/4) 33 11

12 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextline (4/4) 34 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextint (1/2) 35 Ελέγχοντας για το τέλος αρχείου κειµένου µε τη hasnextint (2/2) 36 12

13 Μέθοδοι της κλάσης Scanner (1/11) 37 Μέθοδοι της κλάσης Scanner (2/11) 38 Μέθοδοι της κλάσης Scanner (3/11) 39 13

14 Μέθοδοι της κλάσης Scanner (4/11) 40 Μέθοδοι της κλάσης Scanner (5/11) 41 Μέθοδοι της κλάσης Scanner (6/11) 42 14

15 Μέθοδοι της κλάσης Scanner (7/11) 43 Μέθοδοι της κλάσης Scanner (8/11) 44 Μέθοδοι της κλάσης Scanner (9/11) 45 15

16 Μέθοδοι της κλάσης Scanner (10/11) 46 Μέθοδοι της κλάσης Scanner (11/11) 47 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader ΗκλάσηBufferedReader είναι ένα ρεύµα για ανάγνωση από αρχείο κειµένου Ένα αντικείµενο της κλάσης BufferedReader έχει τις µεθόδους read και readline Ένα πρόγραµµα πουχρησιµοποιεί την BufferedReader, όπως και µε τηνprintwriter, χρειάζεται κάποιες δηλώσεις import: import java.io.bufferedreader; import java.io.filereader; import java.io.filenotfoundexception; import java.io.ioexception; 48 16

17 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader Όπως και οι κλάσεις PrintWriter και Scanner, η BufferedReader δεν έχει constructor που δέχεται ως όρισµα τοόνοµα ενόςαρχείου Χρειάζεται µια άλλη κλάση, την FileReader, για να µετατρέψει το όνοµα αρχείου σε ένα αντικείµενοτοοποίο µπορεί να χρησιµοποιηθεί ως όρισµα στονconstructor της BufferedReader Ένα ρεύµα της κλάσης BufferedReader δηµιουργείται και συνδέεται µε ένα αρχείο κειµένου ως εξής: BufferedReader readerobject; readerobject = new BufferedReader(new FileReader(FileName)); Αυτό ανοίγει το αρχείο για διάβασµα 49 ιαβάζοντας από αρχείο κειµένου Μετά από αυτές τις δηλώσεις, οι µέθοδοι read και readline µπορούν να χρησιµοποιηθούν, για ανάγνωση από το αρχείο Η µέθοδος readline είναι η ίδια µέθοδος που χρησιµοποιείται για ανάγνωση από το πληκτρολόγιο, αλλάστηνπερίπτωσηαυτήθαδιαβάζειαπόαρχείο Η µέθοδος read διαβάζει έναν µόνο χαρακτήρα, και επιστρέφει µια τιµή (τύπου int) που αντιστοιχεί στον χαρακτήρα που διαβάστηκε Αφού η µέθοδος read δεν επιστρέφει τον χαρακτήρα ακριβώς, πρέπει να χρησιµοποιηθεί type cast: char next = (char)(readerobject.read()); 50 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (1/3) 51 17

18 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (2/3) 52 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (3/3) 53 ιαβάζοντας από αρχείο κειµένου Ένα πρόγραµµα πουχρησιµοποιεί ένα αντικείµενο BufferedReader µε τον τρόπο αυτό µπορεί να πετάξει δυο τύπους εξαιρέσεων Απόπειρα ανοίγµατος του αρχείου µπορεί να πετάξει µια FileNotFoundException (µετην αναµενόµενη σηµασία) Ενεργοποίηση της readline µπορεί να πετάξει µια IOException Και τις δυο αυτές εξαιρέσεις πρέπει να τις χειριστούµε 54 18

19 Μέθοδοι της κλάσης BufferedReader (1/2) 55 Μέθοδοι της κλάσης BufferedReader (2/2) 56 ιαβάζοντας αριθµούς ιαφορετικά από την κλάση Scanner, η κλάση BufferedReader δεν έχει µεθόδους για να διαβάζει έναν αριθµό από το αρχείο κειµένου Αντί γι αυτό, ο αριθµός πρέπει να διαβαστεί ως αλφαριθµητικό, και µετά να µετατραπεί σε µια τιµή του κατάλληλου τύπου χρησιµοποιώντας µια από τις wrapper κλάσεις Γιαναδιαβάσουµε ένανµόνο αριθµό πουκαταλαµβάνει µια γραµµή από µόνος του, πρώτα χρησιµοποιούµε τηµέθοδο readline, και κατόπιν την Integer.parseInt, Double.parseDouble, κ.τ.λ., για να µετατρέψουµε τοαλφαριθµητικό σε αριθµό Εάνυπάρχουνπολλοίαριθµοί σε µια γραµµή, µπορούµε να χρησιµοποιήσουµε τη StringTokenizer γιανααποσυνθέσουµε το αλφαριθµητικό σε tokens, και κατόπιν να µετατρέψουµε τα tokens όπως περιγράψαµε πιοπάνω 57 19

20 Ελέγχοντας για το τέλος αρχείου κειµένου Η µέθοδος readline της κλάσης BufferedReader επιστρέφει null όταν προσπαθήσει να διαβάσει πέρα από το τέλος του αρχείου κειµένου Ένα πρόγραµµα µπορεί να ελέγξει για το τέλος αρχείου ελέγχοντας για null όταν χρησιµοποιεί τη readline Η µέθοδος read της κλάσης BufferedReader επιστρέφει -1 όταν προσπαθεί να διαβάσει πέρα από το τέλος του αρχείου κειµένου Ένα πρόγραµµα µπορεί να ελέγξει για το τέλος αρχείου ελέγχοντας για την τιµή -1 όταν χρησιµοποιεί τη read 58 Ονόµατα µονοπατιών Όταν το όνοµα ενός αρχείου πρέπει να χρησιµοποιηθεί ως όρισµα γιαναανοίξουµε το αρχείο, υποτίθεται ότι το αρχείο είναι στον ίδιο κατάλογο µε αυτόν στον οποίο εκτελείται το πρόγραµµα Εάνδενείναιστονίδιοκατάλογο, πρέπει να χρησιµοποιηθεί το πλήρες ή το σχετικό µονοπάτι 59 Ονόµατα µονοπατιών Το όνοµα µονοπατιού (path name) δεν δίνει απλώς το όνοµα τουαρχείου, αλλά και τον κατάλογο όπου βρίσκεται το αρχείο Το όνοµα πλήρους µονοπατιού (full path name) δίνει το πλήρες µονοπάτι, αρχίζοντας από τον ριζικό κατάλογο Το όνοµα σχετικούµονοπατιού (relative path name) δίνει το µονοπάτι για ένα αρχείο, αρχίζοντας από τον τρέχοντα κατάλογο όπου εκτελείται το πρόγραµµα 60 20

21 Ονόµατα µονοπατιών Οτρόποςµε τον οποίο καθορίζουµε ταονόµατα εξαρτάται από το λειτουργικό σύστηµα Ένα τυπικό όνοµα µονοπατιού σε UNIX που θα µπορούσαµε ναχρησιµοποιήσουµε ωςόρισµα είναι "/user/sallyz/data/data.txt" Ένα BufferedReader ρεύµα εισόδου συνδεδεµένο στο αρχείο αυτό δηµιουργείται ως εξής: BufferedReader inputstream = new BufferedReader(new FileReader("/user/sallyz/data/data.txt")); 61 Ονόµατα µονοπατιών Το λειτουργικό σύστηµα Windows καθορίζει τα ονόµατα µονοπατιών µε διαφορετικό τρόπο Ένα τυπικό όνοµα µονοπατιού στα Windows είναι το ακόλουθο: C:\dataFiles\goodData\data.txt Ένα ρεύµα εισόδου BufferedReader που συνδέεται µεαυτότοαρχείοδηµιουργείται ως εξής: BufferedReader inputstream = new BufferedReader(new FileReader ("C:\\dataFiles\\goodData\\data.txt")); Σηµειώστε ότι στα Windows πρέπει να χρησιµοποιηθεί το \\ αντί του \, αφού ένα µονό backslash συµβολίζει την αρχή ενός escape χαρακτήρα 62 Ονόµατα µονοπατιών Το διπλό backslash (\\) πρέπει να χρησιµοποιείται για το όνοµα ενόςµονοπατιού στα Windows που περικλείεται σε quoted string Αυτό το πρόβληµα δεν παρουσιάζεται όταν διαβάζουµε ονόµατα µονοπατιών από το πληκτρολόγιο Τα προβλήµατα µε τους χαρακτήρες escape µπορούν να αποφευχθούν εάν χρησιµοποιούµε τις συµβάσεις του UNIX όταν γράφουµε ονόµατα µονοπατιών Ένα πρόγραµµα σεjava θα δεχτεί το όνοµα ενός µονοπατιού είτε είναι γραµµένο σε µορφή Windows είτε σε µορφή Unix ανεξάρτητα από το λειτουργικό σύστηµα όπου εκτελείται 63 21

22 Φωλιασµένες κλήσεις constructor Κάθε µια από τις κλάσεις για I/O στη Java υπηρετεί µόνο µια συνάρτηση, ήέναν περιορισµένο αριθµό συναρτήσεων Κανονικά δυο ή περισσότεροι constructors διαφορετικών κλάσεων συνδυάζονται για να αποκτηθεί πλήρης λειτουργικότητα Εποµένως, εκφράσεις µε δυοconstructors είναι συνηθισµένες όταν χειριζόµαστε κλάσεις I/O στη Java 64 Φωλιασµένες κλήσεις constructor new BufferedReader(new FileReader("stuff.txt")) Πάνω, το ανώνυµο αντικείµενο FileReader εγκαθιστά µια σύνδεση µε τοαρχείο stuff.txt Όµως, παρέχει µόνο απλοϊκές µεθόδους για είσοδο Ο constructor της BufferedReader δέχεται ως όρισµα το αντικείµενο FileReader και προσθέτει µια πλουσιότερη συλλογή µεθόδων για είσοδο Αυτό µετατρέπει το εσωτερικό αντικείµενο σε µια instance variable του εξωτερικού αντικειµένου 65 System.in, System.out, και System.err Τα standard ρεύµατα System.in, System.out, και System.err είναι αυτόµατα διαθέσιµα σεκάθε πρόγραµµα Java System.out χρησιµοποιείται για τη συνήθη έξοδο στην οθόνη System.err χρησιµοποιείται για την έξοδο των µηνυµάτων σφάλµατος στην οθόνη ΗκλάσηSystem παρέχει τρεις µεθόδους (setin, setout, και seterr) για ανακατεύθυνση αυτών των standard ρευµάτων: public static void setin(inputstream instream) public static void setout(printstream outstream) public static void seterr(printstream outstream) 66 22

23 System.in, System.out, και System.err Χρησιµοποιώντας αυτές τις µεθόδους, οποιοδήποτε από τα τρία standard ρεύµατα µπορούν να ανακατευθυνθούν Για παράδειγµα, αντί να εµφανίζονται στην οθόνη, τα µηνύµατα σφάλµατος θα µπορούσαν να ανακατευθυνθούν σε ένα αρχείο Γιαναανακατευθύνουµε έναstandard ρεύµα, δηµιουργούµε ένανέορεύµα Όπως και τα άλλα ρεύµατα που δηµιουργούνται σε ένα πρόγραµµα, ένα αντικείµενο ρεύµατος που χρησιµοποιήθηκε για ανακατεύθυνση πρέπει να κλείσει µετά το πέρας της I/O Σηµειώστε, ότι τα standard ρεύµατα δεν χρειάζεται να κλείσουν 67 System.in, System.out, και System.err Ανακατεύθυνση της System.err: public void getinput() {... PrintStream errstream = null; try { errstream = new PrintStream(new FileOuptputStream("errMessages.txt")); System.setErr(errStream);... //Set up input stream and read } 68 System.in, System.out, και System.err catch(filenotfoundexception e) { System.err.println("Input file not found"); } finally {... errstream.close(); } } 69 23

24 ΗκλάσηFile ΗκλάσηFile είναι σαν µια wrapper κλάση γιαταονόµατα αρχείων Ο constructor της κλάσης File δέχεται ως string όρισµα έναόνοµα, (γνωστό ως αφηρηµένο όνοµα, abstract name), και παράγει ένα αντικείµενο που αναπαριστά το αρχείο µε αυτότοόνοµα Το αντικείµενο File και οι µέθοδοι της κλάσης File µπορούν να χρησιµοποιηθούν για να αντλήσουµε πληροφορίες για το αρχείο και τις ιδιότητές του 70 Μέθοδοι της κλάσης File (1/5) 71 Μέθοδοι της κλάσης File (2/5) 72 24

25 Μέθοδοι της κλάσης File (3/5) 73 Μέθοδοι της κλάσης File (4/5) 74 Μέθοδοι της κλάσης File (5/5) 75 25

26 υαδικά αρχεία Τα δυαδικά αρχεία αποθηκεύουν δεδοµένα µε τον ίδιο τρόπο που η µνήµη του υπολογιστή αποθηκεύει τις τιµές των µεταβλητών εν χρειάζεται κάποια µετατροπή όταν η τιµή αποθηκεύεται ή ανακτάται από ένα δυαδικό αρχείο Τα δυαδικά αρχεία στη Java, διαφορετικά από τα δυαδικά αρχεία σε άλλες γλώσσες, είναι φορητά Ένα δυαδικό αρχείο που δηµιουργείται από ένα πρόγραµµα Java µπορεί να µετακινηθεί από υπολογιστή σε υπολογιστή Αυτά τα αρχεία µπορούν κατόπιν να διαβαστούν από ένα Java πρόγραµµα, αλλά µόνο από πρόγραµµα Java 76 Γράφοντας απλά δεδοµένα σε δυαδικό αρχείο Η κλάση ObjectOutputStream είναι ένα ρεύµα που µπορεί να χρησιµοποιηθεί για να γράψουµε σεένα δυαδικό αρχείο Ένα αντικείµενοαυτήςτηςκλάσηςέχειµεθόδους για να γράφουµε strings, τιµές primitive τύπων, και αντικείµενα σε ένα δυαδικό αρχείο Ένα πρόγραµµα που χρησιµοποιεί τη ObjectOutputStream πρέπει να κάνει import διάφορες κλάσεις από το package java.io: import java.io.objectoutputstream; import java.io.fileoutstream; import java.io.ioexception; 77 Άνοιγµα δυαδικού αρχείου για εγγραφή Ένα αντικείµενο ObjectOutputStream δηµιουργείται και συνδέεται σε ένα δυαδικό αρχείο ως εξής: ObjectOutputStream outputstreamname = new ObjectOutputStream(new FileOutputStream(FileName)); Ο constructor για τη FileOutputStream µπορεί να πετάξει µια FileNotFoundException Ο constructor για τη ObjectOutputStream µπορεί να πετάξει µια IOException Κάθε µια από αυτές τις εξαιρέσεις πρέπει να τη διαχειριστούµε 78 26

27 Άνοιγµα δυαδικού αρχείου για εγγραφή Μετά το άνοιγµα τουαρχείου, µέθοδοι της ObjectOutputStream µπορεί να χρησιµοποιηθούν για να γράψουµε στοαρχείο Οι µέθοδοι που χρησιµοποιούνται για να γράψουµε primitive τιµές περιλαµβάνουν τις writeint, writedouble, writechar, και writeboolean UTF είναι ένα σχήµα κωδικοποίησης που χρησιµοποιείται για να κωδικοποιούµε Unicode χαρακτήρες που ευνοεί το σύνολο χαρακτήρων ASCII Η µέθοδος writeutf µπορεί να χρησιµοποιηθεί για να γράψουµε τιµές τύπου String Το ρεύµα πρέπει πάντα να κλείνει µετά την εγγραφή 79 Μέθοδοι της ObjectOutputStream (1/5) 80 Μέθοδοι της ObjectOutputStream (2/5) 81 27

28 Μέθοδοι της ObjectOutputStream (3/5) 82 Μέθοδοι της ObjectOutputStream (4/5) 83 Μέθοδοι της ObjectOutputStream (5/5) 84 28

29 ιαβάζοντας απλά δεδοµένα από δυαδικό αρχείο Η κλάση ObjectInputStream είναι ένα ρεύµα που µπορεί να χρησιµοποιηθεί για να διαβάσουµε από δυαδικό αρχείο Κάθε αντικείµενο της κλάσης έχει µεθόδους για να διαβάζουµε strings, τιµές primitive τύπων, και αντικείµενο από ένα δυαδικό αρχείο Ένα πρόγραµµα που χρησιµοποιεί τη ObjectInputStream πρέπει να κάνει import διάφορες κλάσεις από το package java.io: import java.io.objectinputstream; import java.io.fileinputstream; import java.io.ioexception; 85 Ανοίγοντας ένα δυαδικό αρχείο για ανάγνωση Ένα αντικείµενο ObjectInputStream δηµιουργείται και συνδέεται σε ένα δυαδικό αρχείο ως εξής: ObjectInputStream instreamname = new ObjectInputStream(new FileInputStream(FileName)); Ο constructor της FileInputStream µπορεί να πετάξει FileNotFoundException Ο constructor της ObjectInputStream µπορεί να πετάξει IOException Πρέπει να τις χειριστούµε 86 Ανοίγοντας ένα δυαδικό αρχείο για ανάγνωση Μετά το άνοιγµα τουαρχείου, οι µέθοδοι της ObjectInputStream µπορούν να χρησιµοποιηθούν για την ανάγνωση Μέθοδοι για ανάγνωση primitive τιµών είναι οι readint, readdouble, readchar, και readboolean Η µέθοδος readutf διαβάζει τιµές τύπου String Εάν το αρχείο περιέχει πολλαπλούς τύπους, κάθε τύπος πρέπει να διαβαστεί ακριβώς µε τη σειρά που γράφτηκε Στο τέλος πρέπει να κλείνουµε τορεύµα 87 29

30 Μέθοδοι της ObjectInputStream (1/5) 88 Μέθοδοι της ObjectInputStream (2/5) 89 Μέθοδοι της ObjectInputStream (3/5) 90 30

31 Μέθοδοι της ObjectInputStream (4/5) 91 Μέθοδοι της ObjectInputStream (5/5) 92 Ελέγχοντας για το τέλος δυαδικού αρχείου Όλες οι µέθοδοι της ObjectInputStream που διαβάζουν από ένα δυαδικό αρχείο πετάνε EOFException εάνπροσπαθήσουννα διαβάσουν πέρα από το τέλος του Άρα µπορούµε να ελέγξουµε µε τον τρόπο αυτό για το τέλος αρχείου Σηµειώστε ότι διαφορετικές µέθοδοι ελέγχουν για το τέλος αρχείου µε διαφορετικό τρόπο Ελέγχοντας για το τέλος αρχείου µε το λάθος τρόπο µπορεί να προκαλέσει ατέρµονα βρόχο ή µη κανονικό τερµατισµό του προγράµµατος 93 31

32 υαδική I/O για αντικείµενα Μπορούµε ναγράψουµε και να διαβάσουµε αντικείµενα σε/από ένα δυαδικό αρχείο Κάνοντας χρήση της µεθόδου writeobject της κλάσης ObjectOutputStream γράφουµε ένα αντικείµενο σε ένα δυαδικό αρχείο Κάνοντας χρήση της µεθόδου readobject της κλάσης class ObjectInputStream διαβάζουµε ένααντικείµενο από ένα δυαδικό αρχείο Για να χρησιµοποιήσουµε την τιµή που επιστρέφεται από τη readobject ως αντικείµενο µιας κλάσης, πρέπει να εκτελέσουµε type cast: SomeClass someobject = (SomeClass)objectInputStream.readObject(); 94 υαδική I/O για αντικείµενα Είναικαλύτερανααποθηκεύουµε δεδοµένα ενός µόνο τύπου σε ένα αρχείο Εάν έχουµε ανάµειξη τύπων ίσως υπάρχει απώλεια δεδοµένων Επιπλέον, η κλάσητουαντικειµένου το οποίο γράφεταιήδιαβάζεταιπρέπειναυλοποιείτη διεπαφή (interface) Serializable To interface Serializable είναι εύκολο να το χρησιµοποιήσουµε και δεν απαιτεί γνώση της έννοιας των interfaces Μια κλάση που υλοποιεί το Serializable interface θα αποκαλείται serializable κλάση 95 Το interface Serializable Γιανακάνουµε µια κλάση serializable, απλά προσθέτουµε τοimplements Serializable στην κεφαλίδα του ορισµού τη κλάσης public class SomeClass implements Serializable Όταν µια serializable κλάση έχει instance variables πουείναιτύπουκλάσης, then all αυτές οικλάσειςπρέπειεπίσηςναείναιserializable Μια κλάση δεν είναι serializable εκτός και εάν όλες οι instance variables είναι επίσης serializable για όλα τα επίπεδα των instance variables µέσα στις κλάσεις 96 32

33 Πίνακες σε δυαδικά αρχεία Αφού ένας πίνακας είναι αντικείµενο, µπορούµε να γράψουµε και διαβάσουµε πίνακες σε δυαδικά αρχεδία µε τις readobject και writeobject Εάν το βασικός τύπος του πίνακε είναι κάποια κλάση, τότε πρέπει επίσης να είναι serializable (δείτε στην επόµενη διάλεξη), όπως κάθε άλλος τύπος κλάσης Αφού η readobject επιστρέφει την τιµή τηςως τύπου Object (όπως και για κάθε άλλο αντικείµενο), πρέπει να εκτελέσουµε type cast στον σωστό τύπο πίνακα: SomeClass[] someobject = (SomeClass[])objectInputStream.readObject(); 97 Τυχαία προσπέλαση σε δυαδικά αρχεία Τα ρεύµατα για σειριακή προσπέλαση σε αρχεία είναι εκείνα που χρησιµοποιούνται περισσότερο στη Java Όµως, µερικές εφαρµογές απαιτούν γρήγορη προσπέλαση σε εγγραφές σε πολύ µεγάλες βάσεις δεδοµένων Αυτές οι εφαρµογές χρειάζεται να έχουν τυχαία προσπέλαση σε συγκεκριµένα µέρη του αρχείου 98 Ανάγνωση και εγγραφή στο ίδιο αρχείο Η κλάση ρεύµατος RandomAccessFile, που βρίσκεται στο java.io package, παρέχει δυνατότητες ανάγνωσης και εγγραφής, τυχαίας προσπέλασης σε αρχεία στη Java Ένα αρχείο τυχαίας προσπέλασης αποτελείται από µια ακολουθία αριθµηµένων bytes Υπάρχει ένα είδος marker που ονοµάζεται file pointer που πάντα δείχνει σε κάποιο από αυτά τα bytes Όλες οι εγγραφές και αναγνώσεις αρχίζουν από τη θέση του file pointer Ο δείκτης αρχείου (file pointer) µπορεί να µετακινηθεί σε µια νέα θέση µε την µέθοδο seek 99 33

34 Ανάγνωση και εγγραφή στο ίδιο αρχείο Παρόλο που ένα αρχείο τυχαίας προσπέλασης είναι προσανατολισµένο σε byte, υπάρχουν µέθοδοι που επιτρέπουν ανάγνωση και εγγραφή primitive τύπων όπως και τιµών string από/προς ένα random access file Αυτές περιλαµβάνουν τις readint, readdouble, και readutf για είσοδο, και τις writeint, writedouble, και writeutf για έξοδο Όµως δεν έχουν τη µέθοδο writeobject και readobject 100 Ανοίγοντας ένα αρχείο Ο constructor της RandomAccessFile δέχεται ως πρώτο όρισµα είτεέναstring που είναι το όνοµα αρχείου είτε ένα αντικείµενο της κλάσης File Το δεύτερο όρισµα πρέπει να είναι κάποιο από τα παρακάτω: "rw", που δίνει τη δυνατότητα για ανάγνωση και εγγραφή του αρχείου "r", που δίνει τη δυνατότητα για ανάγνωση µόνο του αρχείου "rws" ή "rwd" (δες τον παρακάτω πίνακα µε τις µεθόδους της RandomAccessFile) 101 Παγίδα: Ένα αρχείο Τυχαίας Προσπέλασης (Random Access) δεν χρειάζεται να ανοίξει άδειο Εάντοαρχείουπάρχειήδη, τότε όταν το ανοίγουµε, το µήκος του δεν τίθεται ίσο µε 0, και ο δείκτης αρχείου (file pointer) θα τοποθετηθεί στην αρχή του αρχείου Αυτό εγγυάται ότι δεν θα χαθούν τα παλιά δεδοµένα, και ότι το file pointer τοποθετείται στην θέση που είναι πιο πιθανή για ανάγνωση (εγγραφή) Το µήκος του αρχείου µπορεί να αλλαχτεί µε τη µέθοδο setlength Ειδικότερα, η µέθοδος setlength µπορεί να χρησιµοποιηθεί για να εκκενώσουµε τοαρχείο

35 Μέθοδοι της RandomAccessFile (1/7) 103 Μέθοδοι της RandomAccessFile (2/7) 104 Μέθοδοι της RandomAccessFile (3/7)

36 Μέθοδοι της RandomAccessFile (4/7) 106 Μέθοδοι της RandomAccessFile (5/7) 107 Μέθοδοι της RandomAccessFile (6/7)

37 Μέθοδοι της RandomAccessFile (7/7)

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 7η: 12/04/2006 & 13/04/2006

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη προς το πρόγραμμα (μια πηγή δεδομένων)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Αρχεία δεδομένων Το πακέτο java.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Αρχεία String processing ΕΞΑΙΡΕΣΕΙΣ Εξαιρέσεις οι Εξαιρέσεις (Exceptions) είναι ένας μηχανισμός που έχει η Java για να αντιμετωπίζει περιπτώσεις

Διαβάστε περισσότερα

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

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές

Διαβάστε περισσότερα

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

Διαβάστε περισσότερα

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

10.1 Γενικά για τα streams 10.1 Γενικά για τα streams Για την αλληλεπίδραση ενός προγράµµατος µε ένα αρχείο, δηλαδή για την αποθήκευση ή την ανάγνωση δεδοµένων από αυτό χρησιµοποιείται ένα σύστηµα επικοινωνίας που καλείται streams.

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16 Week 9: Input / Output Μηχανισμοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράμματα χρειάζονται είσοδο/έξοδο για να επικοινωνούν με το περιβάλλον τους. Διάλεξη #16: Είσοδος / Έξοδος [Input / Output] Η

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εργαστήριο 9: Αρχεία

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

Διαβάστε περισσότερα

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

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

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

Week 9: Input / Output

Week 9: Input / Output Week 9: Input / Output Μηχανισµοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράµµατα χρειάζονται είσοδο/έξοδο για να επικοινωνούν µε το περιβάλλον τους. Εβδοµάδα 8: Είσοδος / Έξοδος [Input / Output] Η

Διαβάστε περισσότερα

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

Διαβάστε περισσότερα

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

Συντακτικά λάθη, λάθη εκτέλεσης, Λογικά λάθη Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #7 η : Εξαιρέσεις (λάθη εκτέλεσης, χειρισμός εξαιρέσεων λαθών,) Είσοδος / Έξοδος (ρεύματα, κλάσεις εισόδου και εξόδου, διαχείριση αρχείων) Γαβαλάς

Διαβάστε περισσότερα

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

Διαβάστε περισσότερα

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

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java HelloWorld.java class HelloWorld public static void main(string args[]) // print message System.out.println( Hello world! ); javac HelloWorld.java

Διαβάστε περισσότερα

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

Διαβάστε περισσότερα

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1 HelloWorld Παύλος Εφραιμίδης Java Το πρόγραμμα HelloWorld 1 Το πρόγραμμα HelloWorld.java Σχόλια στη Java /** * The HelloWorld class */ class HelloWorld { public static void main(string[] args) { System.out.println("Hello

Διαβάστε περισσότερα

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

Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Φθινοπωρινό Εξάμηνο Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Σκοπός αυτής της

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

Διαβάστε περισσότερα

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

Διαβάστε περισσότερα

S, (5, -3, 34, -23, 7) ( /, @, *, _

S, (5, -3, 34, -23, 7) ( /, @, *, _ 1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

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

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο ) Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου

Διαβάστε περισσότερα

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

NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS. Διαχείριση Δικτύων. Nikolas Bompetsis Διαχείριση Δικτύων Nikolas Bompetsis nbompetsis@di.uoa.gr Εισαγωγική Διάλεξη Java Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Τεχνολογία Java Collections & Generics Διαχείριση σφαλμάτων Ροές Δεδομένων

Διαβάστε περισσότερα

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Εντολές ελέγχου συγκρίσεων επιλογής ή διακλαδώσεων ( if switch) Μία από τις σημαντικότερες

Διαβάστε περισσότερα

Streams Input / Output in C++ George Kastrinis

Streams Input / Output in C++ George Kastrinis Streams Input / Output in C++ George Kastrinis (gkastrinis@di.uoa.gr) Streams What? Η είσοδος και η έξοδος δεδομένων, στη C++ βασίζεται στην έννοια των ρευμάτων - streams Ένα ρεύμα είναι ουσιαστικά μια

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Επεξεργασία αλφαριθμητικών ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Χειρισμός Αρχείων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη: π.χ.

Διαβάστε περισσότερα

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

Αντικειμενοστραφής Προγραμματισμός Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 6: Κληρονομικότητα, Interfaces και I/O Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

Διαβάστε περισσότερα

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

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Αλφαριθμητικά και Αρχεία Αλφαριθμητικά (strings) Αρχεία (files) τα βασικά στοιχεία Αλφαριθμητικά της C Συμβολοσειρές (= ακολουθίες

Διαβάστε περισσότερα

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006

Διαβάστε περισσότερα

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

Διαβάστε περισσότερα

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 5 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 5 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις Interfaces and Inner Classes. ιεπαφές - Interfaces

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις Interfaces and Inner Classes. ιεπαφές - Interfaces Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 8η: 10/05/2006 & 11/05/2006

Διαβάστε περισσότερα

Εξαιρέσεις. try, catch, finally, throw, throws

Εξαιρέσεις. try, catch, finally, throw, throws Εξαιρέσεις try, catch, finally, throw, throws Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Μαθήματα από τα εργαστήρια ΕΡΓΑΣΤΗΡΙΟ 1 Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο

Διαβάστε περισσότερα

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

Χωρική Βάση δεδοµένων Autocad

Χωρική Βάση δεδοµένων Autocad Χωρική Βάση δεδοµένων Autocad Όλοι η πληροφορία σας βρίσκεται σε ένα αρχείο µε κατάληξη.dwg το οποίο αντιπροσωπεύει τη βάση δεδοµένων σας. Αυτό το αρχείο µπορούµε να το επεξεργαστούµε µε διάφορους τρόπους

Διαβάστε περισσότερα

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

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java Προχωρημένος Προγραμματισμός Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα παρουσιάσουμε

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

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

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

Διαβάστε περισσότερα

File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ

File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ .NET Framework System.Out namespace Βασική υποστήριξη για διαχείριση αρχείων και φακέλων Ανάγνωση και εγγραφή σε file και data streams Κλήση εκτελέσιμου από κώδικα

Διαβάστε περισσότερα

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1 Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία String processing Παράδειγμα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία String processing Παράδειγμα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία String processing Παράδειγμα ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη

Διαβάστε περισσότερα

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy

Διαβάστε περισσότερα

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Ιστορία Ο Patrick Naughton απειλεί την Sun ότι θα φύγει. Τον βάζουν σε μία ομάδα αποτελούμενη από τους James Gosling και Mike Sheridan για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το

Διαβάστε περισσότερα

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

Διαβάστε περισσότερα

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

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Επεξεργασία αλφαριθμητικών ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη

Διαβάστε περισσότερα

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε

Διαβάστε περισσότερα

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

Προγραμματισμός Διαδικτύου 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 7 : Αρχεία στην Java Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα