Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Είσοδος/Έξοδος σε αρχεία. Ρεύµατα - Streams
|
|
- Κύνθια Ακρίδας
- 7 χρόνια πριν
- Προβολές:
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.io περιλαμβάνει περισσότερες από 60 κλάσεις και διασυνδέσεις για το χειρισμό αρχείων δεδομένων. Αρκετές από τις κλάσεις του
Διαβάστε περισσότεραΕίσοδος & Έξοδος. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:
Είσοδος & Έξοδος Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.09 Ρεύµατα (Streams) 2 Ένας ορισµός του ρεύµατος Αφαιρετική έννοια για κάτι το οποίο παράγει
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιαχείριση Εξαιρέσεων. Εισαγωγή στη ιαχείριση Εξαιρέσεων
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις Αρχεία String processing
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Αρχεία String processing ΕΞΑΙΡΕΣΕΙΣ Εξαιρέσεις οι Εξαιρέσεις (Exceptions) είναι ένας μηχανισμός που έχει η Java για να αντιμετωπίζει περιπτώσεις
Διαβάστε περισσότεραΔιαδικτυακές Εφαρμογές Ενότητα 4: Streams
Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ
ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 6η: 06/04/2006 1 ιαχείριση
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας ιάλεξη 14η: 31/08/2006 1 Συλλογές
Διαβάστε περισσότεραΠρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη
9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Κατηγορίες Διαχείριση αρχείων Η κλάση File για τη διαχείριση αρχείων Δυαδικά ρεύματα Εγγραφή και ανάγνωση δυαδικών αρχείων
Διαβάστε περισσότεραΑρχεία και Ρεύματα. Αρχεία
Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα
Διαβάστε περισσότερα10.1 Γενικά για τα streams
10.1 Γενικά για τα streams Για την αλληλεπίδραση ενός προγράµµατος µε ένα αρχείο, δηλαδή για την αποθήκευση ή την ανάγνωση δεδοµένων από αυτό χρησιµοποιείται ένα σύστηµα επικοινωνίας που καλείται streams.
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #16
Week 9: Input / Output Μηχανισμοί εισόδου/εξόδου [I/O mechanisms] Όλα τα προγράμματα χρειάζονται είσοδο/έξοδο για να επικοινωνούν με το περιβάλλον τους. Διάλεξη #16: Είσοδος / Έξοδος [Input / Output] Η
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ Java 2
Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Είσοδος - Έξοδος ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότεραΤο πρόγραμμα 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: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions)
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr Είσοδος Έξοδος (Input Output) Εξαιρέσεις (Exceptions) Οι εφαρμογές της Java είναι
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων
Διαβάστε περισσότεραΕπεξεργασία Αρχείων Κειµένου
Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά
Διαβάστε περισσότεραΠρογραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα
Διαβάστε περισσότεραΠρογραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων
Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων Διαχείριση λαθών Εξαιρέσεις Δημιουργία Ανίχνευση Διαχείριση Βασικοί τύποι εξαιρέσεων Δημιουργία τύπων εξαίρεσης 2 Αντιμετώπιση λαθών Υπάρχουν λάθη χρόνου
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1
Διαβάστε περισσότεραΛειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη
Διαβάστε περισσότερα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) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη
Διαβάστε περισσότεραΤ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων
Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα
Διαβάστε περισσότερα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% του τελικού σας βαθμού Ανάθεση: Παράδοση:
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών 2009-2010 Φθινοπωρινό Εξάμηνο Εργασία Μαθήματος Αξία: 40% του τελικού σας βαθμού Ανάθεση: Παράδοση: Σκοπός αυτής της
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει
Διαβάστε περισσότεραΕισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.
Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java
Διαβάστε περισσότεραS, (5, -3, 34, -23, 7) ( /, @, *, _
1 Τι είναι αρχείο Οι πληροφορίες που καλείται να διαχειριστεί ο Η/Υ είναι τόσες πολλές που η μνήμη του δεν φτάνει να τις επεξεργαστεί όλες μαζί. Γι αυτό τον λόγο αποθηκεύονται σε μονάδες αποθήκευσης (π.χ
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ Java 2
Προγραµµατισµός ΙΙ Java 2 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο
Διαβάστε περισσότεραscanf() scanf() stdin scanf() printf() int float double %lf float
Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση
Διαβάστε περισσότεραΣτοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Εισαγωγή στον Προγραµµατισµό των Υπολογιστών Καθηγητής Ι. Κάβουρας Εξεταστική περίοδος Φεβρουαρίου 2004 Τετάρτη 10/3/2004, ώρα 8.00 Στοιχεία εξεταζόµενου
Διαβάστε περισσότερα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 (gkastrinis@di.uoa.gr) Streams What? Η είσοδος και η έξοδος δεδομένων, στη C++ βασίζεται στην έννοια των ρευμάτων - streams Ένα ρεύμα είναι ουσιαστικά μια
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Επεξεργασία αλφαριθμητικών ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος
Προγραμματισμός Η/Υ Χειρισμός Αρχείων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αρχεία Συλλογές δεδομένων. Αποθηκεύονται στην περιφερειακή μνήμη: π.χ.
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός
Αντικειμενοστραφής Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 6: Κληρονομικότητα, Interfaces και I/O Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών
Διαβάστε περισσότεραΛειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη
Διαβάστε περισσότεραΑρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)
Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα
Διαβάστε περισσότεραΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα
ΕΞΑΙΡΕΣΕΙΣ Εξαίρεση (Exception): Ένα συµβάν κατά τον χρόνο εκτέλεσης (π.χ. αδυναµία ανοίγµατος αρχείου ή ανάγνωσης πληροφορίας, µη ύπαρξη αντικειµένου στη στοίβα) που απαιτεί ειδικό χειρισµό. Ονοµάζεται
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών
Διαβάστε περισσότεραΗ πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης
Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται
Διαβάστε περισσότερα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 Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιεπαφές και Εσωτερικές κλάσεις 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 Εξαιρέσεις Πολλές φορές όταν προγραµµατίζουµε σε κάποια γλώσσα προγραµµατισµού συµβαίνουν διάφορα σφάλµατα που οφείλονται είτε σε διάφορες αιτίες όπως σε λάθη
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου 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 Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι 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 Όλοι η πληροφορία σας βρίσκεται σε ένα αρχείο µε κατάληξη.dwg το οποίο αντιπροσωπεύει τη βάση δεδοµένων σας. Αυτό το αρχείο µπορούµε να το επεξεργαστούµε µε διάφορους τρόπους
Διαβάστε περισσότεραΕισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java
Προχωρημένος Προγραμματισμός Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα παρουσιάσουμε
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Δέκατη-τρίτη (13 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/
Διαβάστε περισσότεραΚλάσεις και Αντικείµενα
Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν
Διαβάστε περισσότεραΣύστηµα Αρχείων και Καταλόγων
ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος
Διαβάστε περισσότεραFile Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ
File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ .NET Framework System.Out namespace Βασική υποστήριξη για διαχείριση αρχείων και φακέλων Ανάγνωση και εγγραφή σε file και data streams Κλήση εκτελέσιμου από κώδικα
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors Μαθήματα από το lab Ένα πρόγραμμα αποτελείται από διάφορες κλάσεις και αντικείμενα αυτών των κλάσεων. Μία από τις κλάσεις
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java
Διαβάστε περισσότεραΑντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1
Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία String processing Παράδειγμα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία String processing Παράδειγμα ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη
Διαβάστε περισσότεραΜετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη
Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη ( ιάλεξη 3) ιδάσκων: Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy
Διαβάστε περισσότεραΕργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Ιστορία Ο Patrick Naughton απειλεί την Sun ότι θα φύγει. Τον βάζουν σε μία ομάδα αποτελούμενη από τους James Gosling και Mike Sheridan για
Διαβάστε περισσότεραΟρισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
Διαβάστε περισσότερα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 Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται
Διαβάστε περισσότεραΚεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.
Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αρχεία Επεξεργασία αλφαριθμητικών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αρχεία Επεξεργασία αλφαριθμητικών ΑΡΧΕΙΑ Ρεύματα Τι είναι ένα ρεύμα (ροή)? Μια αφαίρεση που αναπαριστά μια ροή δεδομένων Η ροή αυτή μπορεί να είναι εισερχόμενη
Διαβάστε περισσότεραΒιβλιοθήκη stdio. Προγραμματισμός II 1
Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εξαιρέσεις Εξαιρέσεις Στα προγράμματα μας θα πρέπει να μπορούμε να χειριστούμε περιπτώσεις που το πρόγραμμα δεν εξελίσσεται όπως το είχαμε προβλέψει Π.χ., κάνουμε
Διαβάστε περισσότεραΠρογραμματισμός Διαδικτύου
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Διαδικτύου Ενότητα 7 : Αρχεία στην Java Ιωάννης Τσούλος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότερα