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:19]
gthanos
java:character_streams [2016/02/15 13:21]
gthanos
Line 2: Line 2:
  
 Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη σύμβαση Unicode. Οποιοδήποτε αρχείο περιέχει χαρακτήρες,​ για κάθε χαρακτήρα περιέχει την ισοδύναμη δυαδική μορφή του χαρακτήρα. Ένα character stream I/O μεταφράζει αυτόματα της δυαδικές τιμές σε unicode χαρακτήρες. Η Java χρησιμοποιεί για την κωδικοποίηση χαρακτήρων τη σύμβαση Unicode. Οποιοδήποτε αρχείο περιέχει χαρακτήρες,​ για κάθε χαρακτήρα περιέχει την ισοδύναμη δυαδική μορφή του χαρακτήρα. Ένα character stream I/O μεταφράζει αυτόματα της δυαδικές τιμές σε unicode χαρακτήρες.
 +
 ==== Χρησιμοποιώντας Streams Xαρακτήρων ==== ==== Χρησιμοποιώντας Streams Xαρακτήρων ====
  
-Όλες οι κλάσεις που περιγράφουν stream χαρακτήρων κατάγονται από τις κλάσεις [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html|Reader]] και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Writer.html|Writer]]. Σε αναλογία και με τα byte streams που είδαμε προηγούμενα,​ υπάρχουν οι κλάσεις [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileReader.html|FileReader]] και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileWriter.html|FileWriter]] που επιτρέπουν την ανάγνωση και την εγγραφή streams χαρακτήρων. Το παρακάτω παράδειγμα //​CopyCharacters//​ παρουσιάζει τις κλάσεις αυτές.+Όλες οι κλάσεις που περιγράφουν stream χαρακτήρων κατάγονται από τις κλάσεις [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html|Reader]] και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Writer.html|Writer]]. Σε αναλογία και με τα byte streams που είδαμε προηγούμενα,​ υπάρχουν οι κλάσεις [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileReader.html|FileReader]] και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileWriter.html|FileWriter]] που επιτρέπουν την ανάγνωση και την εγγραφή streams χαρακτήρων. Το παρακάτω παράδειγμα ​της κλάσης ​//​CopyCharacters//​ παρουσιάζει τις κλάσεις αυτές.
  
 <code java CopyCharacters.java>​ <code java CopyCharacters.java>​
Line 37: Line 38:
 </​code>​ </​code>​
  
-Η κλάση //​CopyCharacters//​ είναι παρόμοια με την κλάση //​CopyBytes//​. Η σημαντικότερη διαφορά είναι ότι η //​CopyCharacters//​ χρησιμοποιεί τις κλάσεις https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Writer.html|FileWriter]] για είσοδο και έξοδο στη θέση των FileInputStream και FileOutputStream. Παρατηρήστε ότι τόσο η κλάση //​CopyBytes//​ όσο και η κλάση //​CopyCharacters//​ χρησιμοποιούν μια μεταβλητή int για να διαβάσουν και να γράψουν. Ωστόσο,​ στο //​CopyCharacters//,​ η μεταβλητή int κρατά μια τιμή χαρακτήρα στα 16 τελευταία bit του, ενώ στο CopyBytes, η μεταβλητή int κρατά μια byte τιμή στα τελευταία 8 bit του.+Η κλάση //​CopyCharacters//​ είναι παρόμοια με την κλάση //​CopyBytes//​. Η σημαντικότερη διαφορά είναι ότι η //​CopyCharacters//​ χρησιμοποιεί τις κλάσεις ​[[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Reader.html και [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​Writer.html|FileWriter]] για είσοδο και έξοδο στη θέση των FileInputStream και FileOutputStream. Παρατηρήστε ότι τόσο η κλάση //​CopyBytes//​ όσο και η κλάση //​CopyCharacters//​ χρησιμοποιούν μια μεταβλητή int για να διαβάσουν και να γράψουν. Ωστόσο,​ στο //​CopyCharacters//,​ η μεταβλητή int κρατά μια τιμή χαρακτήρα στα 16 τελευταία bit του, ενώ στο CopyBytes, η μεταβλητή int κρατά μια byte τιμή στα τελευταία 8 bit του.
  
 ==== Streams Xαρακτήρων που χρησιμοποιούν Byte Streams ==== ==== Streams Xαρακτήρων που χρησιμοποιούν Byte Streams ====
  
-Τα 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'​). Υποστηρικτικά όλοι οι χαρακτήρες αλλαγής γραμμής επιτρέπουν στα προγράμματα να διαβάζουν αρχεία κειμένου που δημιουργήθηκαν σε οποιοδήποτε από τα ευρέως χρησιμοποιούμενα λειτουργικά συστήματα. Οι I/O χαρακτήρα λαμβάνουν χώρα συνήθως σε μεγαλύτερες μονάδες από μονούς χαρακτήρες. Μια συνηθισμένη ​ μονάδα είναι η γραμμή:​ μία σειρά από χαρακτήρες με ένα χαρακτήρα αλλαγής γραμμής στο τέλος. Ένας χαρακτήρας αλλαγής γραμμής μπορεί να είναι μια ακολουθία χαρακτήρων carriege return/line feed ('​\r''​\n'​),​ ένας χαρακτήρας carriege return ('​\r'​),​ ή ένας χαρακτήρας line feed ('​\n'​). Υποστηρικτικά όλοι οι χαρακτήρες αλλαγής γραμμής επιτρέπουν στα προγράμματα να διαβάζουν αρχεία κειμένου που δημιουργήθηκαν σε οποιοδήποτε από τα ευρέως χρησιμοποιούμενα λειτουργικά συστήματα.
java/character_streams.txt · Last modified: 2016/02/26 11:15 (external edit)