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

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

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

Transcript

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

2 Είσοδος/Έξοδος σε αρχεία File I/O 2

3 Ρεύµατα - Streams Ένα ρεύµα (stream) είναι ένα αντικείµενο το οποίο επιτρέπει τη ροή δεδοµένων µεταξύ ενός προγράµµατος και κάποιας συσκευής εισόδου/εξόδου ή αρχείου Εάν τα δεδοµένα ρέουν προς το πρόγραµµα, τότε το ρεύµα λέγεται ρεύµα εισόδου (input stream) Εάν τα δεδοµένα ρέουν από το πρόγραµµα, τότε το ρεύµα λέγεται ρεύµα εξόδου(output stream) 3

4 Ρεύµατα - Streams Τα ρεύµατα εισόδου µπορεί να ρέουν από το πληκτρολόγιο ή από κάποιο αρχείο System.in είναι ένα ρεύµα εισόδου που συνδέεται στο πληκτρολόγιο Scanner keyboard = new Scanner(System.in); Τα ρεύµατα εξόδου µπορεί να ρέουν προς την οθόνη ή προς κάποιο αρχείο System.out είναι ένα ρεύµα εξόδου που συνδέεται στην οθόνη System.out.println("Output stream"); 4

5 Αρχεία κειµένου και υαδικά αρχεία Τα αρχεία που σχεδιάζονται για ανάγνωση από ανθρώπους, και µπορούν να διαβαστούν ή να γραφούν µε έναν συντάκτη κειµένου (editor) αποκαλούνται αρχεία κειµένου (text files) Τα αρχεία κειµένου αποκαλούνται επίσης ASCII αρχεία, επειδή τα δεδοµένα που περιέχουν είναι κωδικοποιηµένα µε ASCII σχήµα κωδικοποίησης Ένα πλεονέκτηµα τωναρχείωνκειµένου είναι ότι συνήθως είναι τα ίδια σε όλους τους υπολογιστές, και έτσι µπορούν να τα µετακινούµε από υπολογιστή σε υπολογιστή χωρίς προβλήµατα συµβατότητας 5

6 Αρχεία κειµένου και υαδικά αρχεία Τα αρχεία που σχεδιάζονται προς ανάγνωση από προγράµµατα και αποτελούνται από ακολουθίες δυαδικών ψηφίων αποκαλούνται δυαδικά αρχεία (binary files) Τα δυαδικά αρχεία σχεδιάζονται να αναγνωστούν από τον ίδιο τύπο υπολογιστή και την ίδια γλώσσα προγραµµατισµού µε την οποία δηµιουργήθηκε το αρχείο Ένα πλεονέκτηµα των δυαδικών αρχείων είναι ότι παρέχουν πιο αποδοτικό τρόπο επεξεργασίας από ότι τα αρχεία κειµένου ιαφορετικά από ότι στα περισσότερα δυαδικά αρχεία, τα δυαδικά αρχεία στη Java έχουν επιπλέον το πλεονέκτηµα ότι είναι ανεξάρτητα από την πλατφόρµα όπου δηµιουργήθηκαν 6

7 Γράφοντας σε ένα αρχείο κειµένου ΗκλάσηPrintWriter είναι µια κλάση ρεύµατος που µπορεί να χρησιµοποιηθεί για να γράψουµεσεένααρχείοκειµένου Κάθε αντικείµενο της κλάσης PrintWriter έχει τις µεθόδους print και println Αυτές είναι παρόµοιες µε τις αντίστοιχες µεθόδους του αντικειµένου System.out, αλλά χρησιµοποιούνται για έξοδο σε αρχείο κειµένου, και όχι για έξοδο στην οθόνη 7

8 Γράφοντας σε ένα αρχείο κειµένου Όλες οι κλάσεις για 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

9 Γράφοντας σε ένα αρχείο κειµένου Ένα ρεύµα της κλάσης PrintWriter δηµιουργείται και συνδέεται σε ένα αρχείο κειµένου για εγγραφή ως εξής: PrintWriter outputstreamname; outputstreamname = new PrintWriter(new FileOutputStream(FileName)); ΗκλάσηFileOutputStream δέχεται ως όρισµαέναstring που αναπαριστά το όνοµααρχείου ΗκλάσηPrintWriter δέχεται ως όρισµατοανώνυµο αντικείµενο τύπου FileOutputStream 9

10 Γράφοντας σε ένα αρχείο κειµένου Αυτό παράγει ένα αντικείµενο της κλάσης PrintWriter το οποίο συνδέεται µετοαρχείο FileName Η διαδικασία σύνδεσης ενός ρεύµατος σε ένα αρχείο αποκαλείται άνοιγµα του αρχείου (opening the file) Εάντοαρχείουπάρχειήδη, τότε η παραπάνω διαδικασία έχει ως αποτέλεσµα ναχαθούντα προηγούµενα δεδοµένα του αρχείου Εάντοαρχείοδενυπάρχει, τότε δηµιουργείται ένα νέο, κενό αρχείο µε όνοµα FileName Μετά από αυτό, οι µέθοδοι print και println µπορούν να χρησιµοποιηθούν για να γράψουµε στο αρχείο 10

11 Γράφοντας σε ένα αρχείο κειµένου Όταν ένα αρχείο κειµένου ανοίγει µε τον τρόπο αυτό, µπορεί να πεταχτεί µια εξαίρεση FileNotFoundException Αυτό πρακτικά σηµαίνει ότι το αρχείο δεν µπόρεσε να δηµιουργηθεί Αυτός ο τύπος της εξαίρεσης µπορεί επίσης να πεταχτεί όταν ένα πρόγραµµα επιχειρεί να ανοίξει ένα αρχείο για ανάγνωση όταν το αρχείο αυτό δεν υπάρχει Εποµένως είναι απαραίτητο να περικλείουµε αυτόν τον κώδικα σε µπλοκ διαχείρισης εξαιρέσεων Το αρχείο θα µπορούσε να ανοιχτεί µέσα στο µπλοκ try Το µπλοκ catch θα µπορούσε να πιάσει και να διαχειριστεί µια πιθανή εξαίρεση Η µεταβλητή που αναφέρεται στο αντικείµενο PrintWriter θα πρέπει να δηλώνεται εκτός του µπλοκ (και να αρχικοποιείται σε null) έτσι ώστε να µην είναι τοπική στο µπλοκ 11

12 Γράφοντας σε ένα αρχείο κειµένου Όταν τερµατίζεται ένα πρόγραµµαπουγράφεισε αρχείο, θα πρέπει πάντα να κλείνει το ρεύµαπου είναι συνδεδεµένο στο αρχείο outputstreamname.close(); Αυτό επιτρέπει στο σύστηµα να απελευθερώσει τους πόρους που χρησιµοποιούνται για να συνδεθεί το ρεύµα στοαρχείο Εάν το πρόγραµµα δεν κλείσει το αρχείο πριν τερµατιστεί, η Java θα το κλείσει αυτόµατα, αλλά είναι ασφαλέστερο να το κλείνουµε ρητά 12

13 Γράφοντας σε ένα αρχείο κειµένου Τα ρεύµατα εξόδου που συνδέονται σε αρχεία είναι συνήθως buffered Αντί να γράφουµε άµεσα (physically) στοαρχείοτο συντοµότερο δυνατό, τα δεδοµένα αποθηκεύονται προσωρινά σε µια τοποθεσία, τον επονοµαζόµενο buffer Όταν συσσωρευτούν αρκετά δεδοµένα, ήόταν ενεργοποιηθεί η µέθοδος flush, τα δεδοµένα στον buffer γράφονται όλα στο αρχείο Αυτό είναι πιο αποδοτικό, αφού οι άµεσες (χωρίς buffer) εγγραφές σε αρχείο είναι πιο αργές 13

14 Γράφοντας σε ένα αρχείο κειµένου Η µέθοδος close ενεργοποιεί τη µέθοδο flush, και έτσι υπάρχει εγγύηση ότι όλα τα δεδοµέναθαεγγραφούνστοαρχείοπριναυτό κλείσει Εάν ένα πρόγραµµα βασίζεταιστηjava για να κλείσει αυτόµατα το αρχείο, και το πρόγραµµα τερµατιστεί µη κανονικά, τότε όσα δεδοµένα εξόδου υπήρχαν στον buffer ίσως δεν εγγραφούν στο αρχείο Επίσης, εάν ένα πρόγραµµα γράφει σε ένα αρχείο και αργότερα ξανανοίξει για ανάγνωση το ίδιο αρχείο, θα πρέπει πρώτα να το έχει κλείσει Όσο συντοµότερα κλείσει ένα αρχείο αφού έχουµε γράψει σε αυτό, τόσο µικρότερη η πιθανότητα να δηµιουργηθεί κάποιο πρόβληµα 14

15 Ονόµατα αρχείων Οι κανόνες ονοµατολογία των αρχείων εξαρτώνται από το Λειτουργικό Σύστηµα, και όχι από τη Java Όταν το όνοµα ενός αρχείο δίνεται σε ένα java constructor για ένα ρεύµα, είναι απλά ένα string, και όχι ένας Java identifier (π.χ., "filename.txt") Τα επιθέµατα που χρησιµοποιούνται, όπως το.txt δεν έχουν ιδιαίτερη έννοια για ένα Java πρόγραµµα 15

16 Κάθε αρχείο έχει δυο ονόµατα Κάθε αρχείο εισόδου και αρχείο εξόδου που χρησιµοποιεί ένα πρόγραµµαέχειδυοονόµατα: 1. Το πραγµατικό όνοµα αρχείου που χρησιµοποιείται από το λειτουργικό σύστηµα 2. Το όνοµα του ρεύµατος που συνδέεται στο αρχείο Το πραγµατικό όνοµαχρησιµοποιείται για να γίνει η σύνδεση στο ρεύµα Το όνοµατουρεύµατος εξυπηρετεί ως προσωρινό όνοµα για το αρχείο, και είναι το όνοµαπουκυρίωςχρησιµοποιείται µέσα στο πρόγραµµα 16

17 IOException Όταν εκτελούµε I/O µε αρχεία υπάρχουν πολλές καταστάσεις στις οποίες µπορεί να πεταχτεί µια εξαίρεση, όπως η FileNotFoundException Πολλές από αυτές τις κλάσεις εξαιρέσεων είναι υποκλάσεις της κλάσης IOException ΗκλάσηIOException είναι η ριζική κλάση για µια ποικιλία κλάσεων εξαιρέσεων που σχετίζονται µε την είσοδο/έξοδο Αυτές οι κλάσεις εξαιρέσεων είναι όλες checked exceptions Εποµένως, πρέπει είτε να πιαστούν είτε να δηλωθούν σε µια δήλωση throws 17

18 Unchecked Exceptions Σε αντιδιαστολή, οι κλάσεις εξαιρέσεων NoSuchElementException, InputMismatchException, και IllegalStateException είναι όλες unchecked exceptions Οι unchecked exceptions δεν απαιτείται να πιαστούν ή να δηλωθούν µε µια δήλωση throws 18

19 Παγίδα : ένα µπλοκ try είναι µπλοκ Αφού η προσπάθεια ανοίγµατος ενός αρχείου, µπορεί να έχει ως αποτέλεσµα να πεταχτεί µια εξαίρεση, θα πρέπει να τοποθετείται µέσα σε ένα µπλοκ try Εάν η µεταβλητή για ένα αντικείµενο PrintWriter πρέπει να χρησιµοποιηθεί εκτός του µπλοκ αυτού, τότε η µεταβλητή πρέπει (προφανώς) να δηλωθεί εκτός του µπλοκ ιαφορετικά θα ήταν τοπική στο µπλοκ, και δεν θα µπορούσε να χρησιµοποιηθεί πουθενά αλλού Εάν δηλωνόταν µέσα στο µπλοκ και χρησιµοποιούνταν κάπου αλλού, ο compiler θα έδινε ένα µήνυµα λάθους για undefined identifier 19

20 Προσθήκη στο τέλος (append) ενός αρχείου κειµένου Γιαναδηµιουργήσουµε ένα αντικείµενο PrintWriter και να το συνδέσουµεσεένα αρχείο κειµένου για προσθήκη στο τέλος (appending), ένα δεύτερο όρισµα, που τίθεται στην τιµή true, πρέπει να χρησιµοποιηθεί στον constructor του αντικειµένου FileOutputStream outputstreamname = new PrintWriter(new FileOutputStream(FileName, true)); Μετά τη δήλωση αυτή, οι µέθοδοι print, println και/ή printf µπορεί να χρησιµοποιηθούν για να γράψουµε στοαρχείο Το νέο κείµενο θα γραφεί µετά το παλιό κείµενο στο αρχείο 20

21 Η µέθοδος tostring βοηθά στην έξοδο σε αρχείο κειµένου Εάν µια κλάση έχει κατάλληλη µέθοδο tostring(), και το anobject είναι ένα αντικείµενο της κλάσης αυτής, τότε το anobject µπορεί να χρησιµοποιηθεί ως όρισµα στο System.out.println, και θα παράξει κάποια έξοδο Το ίδιο ισχύει και µε τιςµεθόδους print και println της κλάσης PrintWriter outputstreamname.println(anobject); 21

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

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

24 Μέθοδοι της κλάσης PrintWriter (3/3) 24

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

26 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (1/4) 26

27 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (2/4) 27

28 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (3/4) 28

29 ιαβάζοντας από ένα αρχείο κειµένου µε τη Scanner (4/4) 29

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

46 Μέθοδοι της κλάσης Scanner (10/11) 46

47 Μέθοδοι της κλάσης Scanner (11/11) 47

48 ιαβάζοντας από αρχείο κειµένου µε τη 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

49 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader Όπως και οι κλάσεις PrintWriter και Scanner, η BufferedReader δεν έχει constructor που δέχεται ως όρισµα τοόνοµα ενόςαρχείου Χρειάζεται µια άλλη κλάση, την FileReader, για να µετατρέψει το όνοµα αρχείου σε ένα αντικείµενο το οποίο µπορεί να χρησιµοποιηθεί ως όρισµα στονconstructor της BufferedReader Ένα ρεύµα τηςκλάσηςbufferedreader δηµιουργείται και συνδέεται µε ένα αρχείο κειµένου ως εξής: BufferedReader readerobject; readerobject = new BufferedReader(new FileReader(FileName)); Αυτό ανοίγει το αρχείο για διάβασµα 49

50 ιαβάζοντας από αρχείο κειµένου Μετά από αυτές τις δηλώσεις, οι µέθοδοι read και readline µπορούν να χρησιµοποιηθούν, για ανάγνωση από το αρχείο Η µέθοδος readline είναι η ίδια µέθοδος που χρησιµοποιείται για ανάγνωση από το πληκτρολόγιο, αλλά στην περίπτωση αυτή θα διαβάζει από αρχείο Η µέθοδος read διαβάζει έναν µόνο χαρακτήρα, και επιστρέφει µια τιµή (τύπου int) που αντιστοιχεί στον χαρακτήρα που διαβάστηκε Αφού η µέθοδος read δεν επιστρέφει τον χαρακτήρα ακριβώς, πρέπει να χρησιµοποιηθεί type cast: char next = (char)(readerobject.read()); 50

51 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (1/3) 51

52 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (2/3) 52

53 ιαβάζοντας από αρχείο κειµένου µε τη BufferedReader (3/3) 53

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

55 Μέθοδοι της κλάσης BufferedReader (1/2) 55

56 Μέθοδοι της κλάσης BufferedReader (2/2) 56

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

58 Ελέγχοντας για το τέλος αρχείου κειµένου Η µέθοδος readline της κλάσης BufferedReader επιστρέφει null όταν προσπαθήσει να διαβάσει πέρα από το τέλος του αρχείου κειµένου Ένα πρόγραµµα µπορεί να ελέγξει για το τέλος αρχείου ελέγχοντας για null όταν χρησιµοποιεί τη readline Η µέθοδος read της κλάσης BufferedReader επιστρέφει -1 όταν προσπαθεί να διαβάσει πέρα από το τέλος του αρχείου κειµένου Ένα πρόγραµµα µπορεί να ελέγξει για το τέλος αρχείου ελέγχοντας για την τιµή -1 όταν χρησιµοποιεί τη read 58

59 Ονόµατα µονοπατιών Όταν το όνοµα ενός αρχείου πρέπει να χρησιµοποιηθεί ως όρισµα για να ανοίξουµε το αρχείο, υποτίθεται ότι το αρχείο είναι στον ίδιο κατάλογο µε αυτόν στον οποίο εκτελείται το πρόγραµµα Εάν δεν είναι στον ίδιο κατάλογο, πρέπει να χρησιµοποιηθεί το πλήρες ή το σχετικό µονοπάτι 59

60 Ονόµατα µονοπατιών Το όνοµα µονοπατιού (path name) δεν δίνει απλώς το όνοµα του αρχείου, αλλά και τον κατάλογο όπου βρίσκεται το αρχείο Το όνοµα πλήρους µονοπατιού (full path name) δίνει το πλήρες µονοπάτι, αρχίζοντας από τον ριζικό κατάλογο Το όνοµα σχετικού µονοπατιού (relative path name) δίνει το µονοπάτι για ένα αρχείο, αρχίζοντας από τον τρέχοντα κατάλογο όπου εκτελείται το πρόγραµµα 60

61 Ονόµατα µονοπατιών Ο τρόπος µε τον οποίο καθορίζουµε τα ονόµατα εξαρτάται από το λειτουργικό σύστηµα Ένα τυπικό όνοµα µονοπατιού σε UNIX που θα µπορούσαµε ναχρησιµοποιήσουµε ωςόρισµα είναι "/user/sallyz/data/data.txt" Ένα BufferedReader ρεύµα εισόδου συνδεδεµένο στο αρχείο αυτό δηµιουργείται ως εξής: BufferedReader inputstream = new BufferedReader(new FileReader("/user/sallyz/data/data.txt")); 61

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

63 Ονόµατα µονοπατιών Το διπλό backslash (\\) πρέπει να χρησιµοποιείται για το όνοµα ενός µονοπατιού στα Windows που περικλείεται σε quoted string Αυτό το πρόβληµα δεν παρουσιάζεται όταν διαβάζουµε ονόµατα µονοπατιών από το πληκτρολόγιο Τα προβλήµατα µε τους χαρακτήρες escape µπορούν να αποφευχθούν εάν χρησιµοποιούµε τις συµβάσεις του UNIX όταν γράφουµε ονόµατα µονοπατιών Ένα πρόγραµµα σεjava θα δεχτεί το όνοµα ενός µονοπατιού είτε είναι γραµµένο σε µορφή Windows είτε σε µορφή Unix ανεξάρτητα από το λειτουργικό σύστηµα όπου εκτελείται 63

64 Φωλιασµένες κλήσεις constructor Κάθε µια από τις κλάσεις για I/O στη Java υπηρετεί µόνο µια συνάρτηση, ή έναν περιορισµένο αριθµό συναρτήσεων Κανονικά δυο ή περισσότεροι constructors διαφορετικών κλάσεων συνδυάζονται για να αποκτηθεί πλήρης λειτουργικότητα Εποµένως, εκφράσεις µε δυο constructors είναι συνηθισµένες όταν χειριζόµαστε κλάσεις I/O στη Java 64

65 Φωλιασµένες κλήσεις constructor new BufferedReader(new FileReader("stuff.txt")) Πάνω, το ανώνυµο αντικείµενο FileReader εγκαθιστά µια σύνδεση µετοαρχείο stuff.txt Όµως, παρέχει µόνο απλοϊκές µεθόδους για είσοδο Ο constructor της BufferedReader δέχεται ως όρισµα τοαντικείµενο FileReader και προσθέτει µια πλουσιότερη συλλογή µεθόδων για είσοδο Αυτό µετατρέπει το εσωτερικό αντικείµενο σε µια instance variable του εξωτερικού αντικειµένου 65

66 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

67 System.in, System.out, και System.err Χρησιµοποιώντας αυτές τις µεθόδους, οποιοδήποτε από τα τρία standard ρεύµατα µπορούν να ανακατευθυνθούν Για παράδειγµα, αντί να εµφανίζονται στην οθόνη, τα µηνύµατα σφάλµατος θα µπορούσαν να ανακατευθυνθούν σε ένα αρχείο Γιαναανακατευθύνουµε έναstandard ρεύµα, δηµιουργούµε ένανέορεύµα Όπως και τα άλλα ρεύµατα που δηµιουργούνται σε ένα πρόγραµµα, ένα αντικείµενο ρεύµατος που χρησιµοποιήθηκε για ανακατεύθυνση πρέπει να κλείσει µετά το πέρας της I/O Σηµειώστε, ότι τα standard ρεύµατα δεν χρειάζεται να κλείσουν 67

68 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

69 System.in, System.out, και System.err } catch(filenotfoundexception e) { System.err.println("Input file not found"); } finally {... errstream.close(); } 69

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

71 Μέθοδοι της κλάσης File (1/5) 71

72 Μέθοδοι της κλάσης File (2/5) 72

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

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

75 Μέθοδοι της κλάσης File (5/5) 75

76 υαδικά αρχεία Τα δυαδικά αρχεία αποθηκεύουν δεδοµένα µε τον ίδιο τρόπο που η µνήµη του υπολογιστή αποθηκεύει τις τιµές των µεταβλητών εν χρειάζεται κάποια µετατροπή όταν η τιµή αποθηκεύεται ή ανακτάται από ένα δυαδικό αρχείο Τα δυαδικά αρχεία στη Java, διαφορετικά από ταδυαδικάαρχείασεάλλεςγλώσσες, είναι φορητά Ένα δυαδικό αρχείο που δηµιουργείται από ένα πρόγραµµα Java µπορεί να µετακινηθεί από υπολογιστή σε υπολογιστή Αυτά τα αρχεία µπορούν κατόπιν να διαβαστούν από ένα Java πρόγραµµα, αλλά µόνο από πρόγραµµα Java 76

77 Γράφοντας απλά δεδοµένα σε δυαδικό αρχείο ΗκλάσηObjectOutputStream είναι ένα ρεύµα που µπορεί να χρησιµοποιηθεί για να γράψουµε σεένα δυαδικό αρχείο Ένα αντικείµενο αυτής της κλάσης έχει µεθόδους για να γράφουµε strings, τιµές primitive τύπων, και αντικείµενα σε ένα δυαδικό αρχείο Ένα πρόγραµµα που χρησιµοποιεί τη ObjectOutputStream πρέπει να κάνει import διάφορες κλάσεις από το package java.io: import java.io.objectoutputstream; import java.io.fileoutstream; import java.io.ioexception; 77

78 Άνοιγµα δυαδικούαρχείουγιαεγγραφή Ένα αντικείµενο ObjectOutputStream δηµιουργείται και συνδέεται σε ένα δυαδικό αρχείο ως εξής: ObjectOutputStream outputstreamname = new ObjectOutputStream(new FileOutputStream(FileName)); Ο constructor για τη FileOutputStream µπορεί να πετάξει µια FileNotFoundException Ο constructor για τη ObjectOutputStream µπορεί να πετάξει µια IOException Κάθε µια από αυτές τις εξαιρέσεις πρέπει να τη διαχειριστούµε 78

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

80 Μέθοδοι της ObjectOutputStream (1/5) 80

81 Μέθοδοι της ObjectOutputStream (2/5) 81

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

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

84 Μέθοδοι της ObjectOutputStream (5/5) 84

85 ιαβάζοντας απλά δεδοµένα από δυαδικό αρχείο Η κλάση ObjectInputStream είναι ένα ρεύµα που µπορεί να χρησιµοποιηθεί για να διαβάσουµε από δυαδικό αρχείο Κάθε αντικείµενο της κλάσης έχει µεθόδους για να διαβάζουµε strings, τιµές primitive τύπων, και αντικείµενο από ένα δυαδικό αρχείο Ένα πρόγραµµα που χρησιµοποιεί τη ObjectInputStream πρέπει να κάνει import διάφορες κλάσεις από το package java.io: import java.io.objectinputstream; import java.io.fileinputstream; import java.io.ioexception; 85

86 Ανοίγοντας ένα δυαδικό αρχείο για ανάγνωση Ένα αντικείµενο ObjectInputStream δηµιουργείται και συνδέεται σε ένα δυαδικό αρχείο ως εξής: ObjectInputStream instreamname = new ObjectInputStream(new FileInputStream(FileName)); Ο constructor της FileInputStream µπορεί να πετάξει FileNotFoundException Ο constructor της ObjectInputStream µπορεί να πετάξει IOException Πρέπει να τις χειριστούµε 86

87 Ανοίγοντας ένα δυαδικό αρχείο για ανάγνωση Μετά το άνοιγµα του αρχείου, οι µέθοδοι της ObjectInputStream µπορούν να χρησιµοποιηθούν για την ανάγνωση Μέθοδοι για ανάγνωση primitive τιµών είναι οι readint, readdouble, readchar, και readboolean Η µέθοδος readutf διαβάζει τιµές τύπου String Εάν το αρχείο περιέχει πολλαπλούς τύπους, κάθε τύπος πρέπει να διαβαστεί ακριβώς µε τη σειρά που γράφτηκε Στο τέλος πρέπει να κλείνουµε το ρεύµα 87

88 Μέθοδοι της ObjectInputStream (1/5) 88

89 Μέθοδοι της ObjectInputStream (2/5) 89

90 Μέθοδοι της ObjectInputStream (3/5) 90

91 Μέθοδοι της ObjectInputStream (4/5) 91

92 Μέθοδοι της ObjectInputStream (5/5) 92

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

94 υαδική I/O για αντικείµενα Μπορούµε να γράψουµε και να διαβάσουµε αντικείµενα σε/από ένα δυαδικό αρχείο Κάνοντας χρήση της µεθόδου writeobject της κλάσης ObjectOutputStream γράφουµε ένα αντικείµενο σε ένα δυαδικό αρχείο Κάνοντας χρήση της µεθόδου readobject της κλάσης class ObjectInputStream διαβάζουµε ένα αντικείµενο από ένα δυαδικό αρχείο Γιαναχρησιµοποιήσουµε τηντιµή που επιστρέφεται από τη readobject ως αντικείµενο µιας κλάσης, πρέπει να εκτελέσουµε type cast: SomeClass someobject = (SomeClass)objectInputStream.readObject(); 94

95 υαδική I/O για αντικείµενα Είναι καλύτερα να αποθηκεύουµε δεδοµένα ενός µόνο τύπου σε ένα αρχείο Εάν έχουµε ανάµειξη τύπων ίσως υπάρχει απώλεια δεδοµένων Επιπλέον, η κλάση του αντικειµένου το οποίο γράφεται ή διαβάζεται πρέπει να υλοποιεί τη διεπαφή (interface) Serializable To interface Serializable είναι εύκολο να το χρησιµοποιήσουµε και δεν απαιτεί γνώση της έννοιας των interfaces Μια κλάση που υλοποιεί το Serializable interface θα αποκαλείται serializable κλάση 95

96 Το interface Serializable Για να κάνουµε µια κλάση serializable, απλά προσθέτουµε τοimplements Serializable στην κεφαλίδα του ορισµού τη κλάσης public class SomeClass implements Serializable Όταν µια serializable κλάση έχει instance variables που είναι τύπου κλάσης, then all αυτές οι κλάσεις πρέπει επίσης να είναι serializable Μια κλάση δεν είναι serializable εκτός και εάν όλες οι instance variables είναι επίσης serializable για όλα τα επίπεδα των instance variables µέσα στις κλάσεις 96

97 Πίνακες σε δυαδικά αρχεία Αφού ένας πίνακας είναι αντικείµενο, µπορούµε να γράψουµε και διαβάσουµε πίνακες σε δυαδικά αρχεδία µε τις readobject και writeobject Εάν το βασικός τύπος του πίνακε είναι κάποια κλάση, τότε πρέπει επίσης να είναι serializable (δείτε στην επόµενη διάλεξη), όπως κάθε άλλος τύπος κλάσης Αφού η readobject επιστρέφει την τιµή τηςως τύπου Object (όπως και για κάθε άλλο αντικείµενο), πρέπει να εκτελέσουµε type cast στον σωστό τύπο πίνακα: SomeClass[] someobject = (SomeClass[])objectInputStream.readObject(); 97

98 Τυχαία προσπέλαση σε δυαδικά αρχεία Τα ρεύµατα για σειριακή προσπέλαση σε αρχεία είναι εκείνα που χρησιµοποιούνται περισσότερο στη Java Όµως, µερικές εφαρµογές απαιτούν γρήγορη προσπέλαση σε εγγραφές σε πολύ µεγάλες βάσεις δεδοµένων Αυτές οι εφαρµογές χρειάζεται να έχουν τυχαία προσπέλαση σε συγκεκριµένα µέρη του αρχείου 98

99 Ανάγνωση και εγγραφή στο ίδιο αρχείο Ηκλάσηρεύµατος RandomAccessFile, που βρίσκεται στο java.io package, παρέχει δυνατότητες ανάγνωσης και εγγραφής, τυχαίας προσπέλασης σε αρχεία στη Java Ένα αρχείο τυχαίας προσπέλασης αποτελείται από µια ακολουθία αριθµηµένων bytes Υπάρχει ένα είδος marker που ονοµάζεται file pointer που πάντα δείχνει σε κάποιο από αυτά τα bytes Όλες οι εγγραφές και αναγνώσεις αρχίζουν από τη θέση του file pointer Ο δείκτης αρχείου (file pointer) µπορεί να µετακινηθεί σε µια νέα θέση µε τηνµέθοδο seek 99

100 Ανάγνωση και εγγραφή στο ίδιο αρχείο Παρόλο που ένα αρχείο τυχαίας προσπέλασης είναι προσανατολισµένο σε byte, υπάρχουν µέθοδοι που επιτρέπουν ανάγνωση και εγγραφή primitive τύπων όπως και τιµών string από/προς ένα random access file Αυτές περιλαµβάνουν τις readint, readdouble, και readutf για είσοδο, και τις writeint, writedouble, και writeutf για έξοδο Όµως δεν έχουν τη µέθοδο writeobject και readobject 100

101 Ανοίγοντας ένα αρχείο Ο constructor της RandomAccessFile δέχεται ως πρώτο όρισµα είτεέναstring που είναι το όνοµα αρχείου είτε ένα αντικείµενο της κλάσης File Το δεύτερο όρισµα πρέπειναείναικάποιο από τα παρακάτω: "rw", που δίνει τη δυνατότητα για ανάγνωση και εγγραφή του αρχείου "r", που δίνει τη δυνατότητα για ανάγνωση µόνο του αρχείου "rws" ή "rwd" (δες τον παρακάτω πίνακα µε τις µεθόδους της RandomAccessFile) 101

102 Παγίδα: Ένα αρχείο Τυχαίας Προσπέλασης (Random Access) δεν χρειάζεται να ανοίξει άδειο Εάν το αρχείο υπάρχει ήδη, τότε όταν το ανοίγουµε, το µήκος του δεν τίθεται ίσο µε 0, και οδείκτηςαρχείου(file pointer) θα τοποθετηθεί στην αρχή του αρχείου Αυτό εγγυάται ότι δεν θα χαθούν τα παλιά δεδοµένα, και ότι το file pointer τοποθετείται στην θέση που είναι πιο πιθανή για ανάγνωση (εγγραφή) Το µήκος του αρχείου µπορεί να αλλαχτεί µε τη µέθοδο setlength Ειδικότερα, η µέθοδος setlength µπορεί να χρησιµοποιηθεί για να εκκενώσουµε τοαρχείο 102

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 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. Για εκπαιδευτικό υλικό,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το πρόγραμμα 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 υποστηρίζει

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Week 9: Input / Output

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη 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 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Ένα ρεύμα είναι ουσιαστικά μια

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων. Προγραμματισμός II 1

Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων. Προγραμματισμός II 1 Βασικές λειτουργίες συστήματος πάνω σε αρχεία δεδομένων 1 ais@inf.uth.gr Βασικές λειτουργίες (1) int pen(cnst char *path, int fags, mde_t perms) ανοίγει το αρχείο με όνομα path (αν συμπεριλαμβάνεται ένα

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

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

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ 2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Linear Data Structures) Ας θεωρήσουµε µία δοµή δεδοµένων το σύνολο των στοιχείων της οποίας είναι διατεταγµένο µε τέτοιο τρόπο ώστε να ισχύουν τα εξής: (α) υπάρχει ένα µόνο

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

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

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

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