java:character_streams

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:character_streams [2016/02/15 13:21]
gthanos [Streams Xαρακτήρων που χρησιμοποιούν Byte Streams]
java:character_streams [2016/02/15 13:40]
gthanos [Διαβάζοντας και γράφοντας μία γραμμή]
Line 2: Line 2:
  
 Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη σύμβαση Unicode. Οποιοδήποτε αρχείο περιέχει χαρακτήρες,​ για κάθε χαρακτήρα περιέχει την ισοδύναμη δυαδική μορφή του χαρακτήρα. Ένα character stream I/O μεταφράζει αυτόματα της δυαδικές τιμές σε unicode χαρακτήρες. Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη σύμβαση Unicode. Οποιοδήποτε αρχείο περιέχει χαρακτήρες,​ για κάθε χαρακτήρα περιέχει την ισοδύναμη δυαδική μορφή του χαρακτήρα. Ένα character stream I/O μεταφράζει αυτόματα της δυαδικές τιμές σε unicode χαρακτήρες.
 +
 ==== Χρησιμοποιώντας Streams Xαρακτήρων ==== ==== Χρησιμοποιώντας Streams Xαρακτήρων ====
  
Line 43: Line 44:
 Τα streams χαρακτήρων είναι συχνά «περιτυλίγματα» των byte streams. Κάθε stream χαρακτήρων χρησιμοποιεί το byte stream για την εκτέλεση της φυσικής I/O, ενώ το stream χαρακτήρων χειρίζεται τη μετάφραση μεταξύ των χαρακτήρων και bytes. Η κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html,​ για παράδειγμα,​ χρησιμοποιεί την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileInputStream.html|FileInputStream]],​ ενώ η FileWriter χρησιμοποιεί την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileOutputStream.html|FileOutputStream]]. Τα streams χαρακτήρων είναι συχνά «περιτυλίγματα» των byte streams. Κάθε stream χαρακτήρων χρησιμοποιεί το byte stream για την εκτέλεση της φυσικής I/O, ενώ το stream χαρακτήρων χειρίζεται τη μετάφραση μεταξύ των χαρακτήρων και bytes. Η κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html,​ για παράδειγμα,​ χρησιμοποιεί την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileInputStream.html|FileInputStream]],​ ενώ η FileWriter χρησιμοποιεί την κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileOutputStream.html|FileOutputStream]].
  
-==== I/O με γνώμονα την Γραμμή ====+==== Διαβάζοντας και γράφοντας μία γραμμή ====
  
-Οι I/O χαρακτήρα λαμβάνουν χώρα συνήθως σε μεγαλύτερες μονάδες από μονούς χαρακτήρες. Μια συνηθισμένη ​ μονάδα είναι η γραμμήμία σειρά από χαρακτήρες με ένα χαρακτήρα αλλαγής γραμμής στο τέλος. ​Ένας ​χαρακτήρας αλλαγής γραμμής μπορεί να είναι μια ακολουθία χαρακτήρων carriege return/line feed ('​\r''​\n'​),​ ένας χαρακτήρας carriege return ('​\r'​),​ ή ένας χαρακτήρας line feed ('​\n'​). Υποστηρικτικά όλοι οι χαρακτήρες αλλαγής γραμμής επιτρέπουν στα προγράμματα να διαβάζουν αρχεία κειμένου που δημιουργήθηκαν σε οποιοδήποτε από τα ευρέως χρησιμοποιούμενα λειτουργικά συστήματα.+Η διαδικασία ανάγνωσης ή διαβάσματος ​χαρακτήρων λαμβάνουν χώρα συνήθως σε ομάδες χαρακτήρων. Μια συνηθισμένη ​ μονάδα είναι η γραμμή. Η γραμμή ορίζεται ως μία σειρά από χαρακτήρες με ένα χαρακτήρα αλλαγής γραμμής στο τέλος. ​Ο χαρακτήρας αλλαγής γραμμής μπορεί να είναι μια ακολουθία χαρακτήρων carriege return/line feed ('​\r''​\n'​),​ ένας χαρακτήρας carriege return ('​\r'​),​ ή ένας χαρακτήρας line feed ('​\n'​). ​
  
-Ας τροποποιήσουμε το παράδειγμα //​CopyCharacters//​ για να χρησιμοποιήσουμε I/O με γνώμονα την γραμμή. Για να το κάνουμε αυτό, θα πρέπει να χρησιμοποιήσουμε δύο κλάσεις που δεν έχουμε ξαναδεί,​ τις BufferedReader και PrintWriter. ​Σε αυτό το παράδειγμα,​ θα εστιάσουμε στην υποστήριξη I/O με γνώμονα την γραμμή.+Ας τροποποιήσουμε το παράδειγμα //​CopyCharacters//​ για να χρησιμοποιήσουμε I/O χαρακτήρων ​για να διαβάσουμε και να γράψουμε γραμμή-γραμμή. Για να το κάνουμε αυτό, θα πρέπει να χρησιμοποιήσουμε δύο κλάσεις που δεν έχουμε ξαναδεί,​ τις ​[[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​BufferedReader.html|BufferedReader]] ​και ​[[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​PrintWriter.html|PrintWriter]]
  
-Το παράδειγμα [[CopyLines]] επικαλείται τις BufferedReader.readLine και PrintWriter.println για να κάνει είσοδο ​και ​έξοδο, ​μία γραμμή ​τη φορά.+Το παράδειγμα [[CopyLines]] επικαλείται τις BufferedReader.readLine και PrintWriter.println για να διαβάσει και ​να γράψει ​μία γραμμή ​κάθε ​φορά.
  
 <code java CopyLines.java>​ <code java CopyLines.java>​
Line 84: Line 85:
 </​code>​ </​code>​
  
-Η κληση της //​readline//​ επιστρέφει μια γραμμή κειμένου. To πρόγραμμα //​CopyLines//​ εξάγει κάθε γραμμή,​ χρησιμοποιώντας την //​println//,​ η οποία προσθέτει τον χαρακτήρα αλλαγής γραμμής για το τρέχον λειτουργικό σύστημα. Αυτός μπορεί να μην είναι ο ίδιος χαρακτήρας αλλαγής γραμμής που χρησιμοποιήθηκε στο αρχείο εισόδου.+Η κλήση της //​readline//​ επιστρέφει μια γραμμή κειμένου. To πρόγραμμα //​CopyLines//​ εξάγει κάθε γραμμή,​ χρησιμοποιώντας την //​println//,​ η οποία προσθέτει τον χαρακτήρα αλλαγής γραμμής για το τρέχον λειτουργικό σύστημα. Αυτός μπορεί να μην είναι ο ίδιος χαρακτήρας αλλαγής γραμμής που χρησιμοποιήθηκε στο αρχείο εισόδου ​ή μπορεί να είναι διαφορετικός (εξαρτάται από το λειτουργικό σύστημα που χρησιμοποιήθηκε για την εγγραφή του αρχικού αρχείου).
  
 ==== Buffered I/O ==== ==== Buffered I/O ====
java/character_streams.txt · Last modified: 2016/02/26 11:15 (external edit)