This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:character_streams [2016/02/15 13:21] gthanos |
java:character_streams [2016/02/15 13:41] gthanos [Buffered I/O] |
||
---|---|---|---|
Line 46: | Line 46: | ||
==== Διαβάζοντας και γράφοντας μία γραμμή ==== | ==== Διαβάζοντας και γράφοντας μία γραμμή ==== | ||
- | Οι 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 85: | Line 85: | ||
</code> | </code> | ||
- | Η κληση της //readline// επιστρέφει μια γραμμή κειμένου. To πρόγραμμα //CopyLines// εξάγει κάθε γραμμή, χρησιμοποιώντας την //println//, η οποία προσθέτει τον χαρακτήρα αλλαγής γραμμής για το τρέχον λειτουργικό σύστημα. Αυτός μπορεί να μην είναι ο ίδιος χαρακτήρας αλλαγής γραμμής που χρησιμοποιήθηκε στο αρχείο εισόδου. | + | Η κλήση της //readline// επιστρέφει μια γραμμή κειμένου. To πρόγραμμα //CopyLines// εξάγει κάθε γραμμή, χρησιμοποιώντας την //println//, η οποία προσθέτει τον χαρακτήρα αλλαγής γραμμής για το τρέχον λειτουργικό σύστημα. Αυτός μπορεί να μην είναι ο ίδιος χαρακτήρας αλλαγής γραμμής που χρησιμοποιήθηκε στο αρχείο εισόδου ή μπορεί να είναι διαφορετικός (εξαρτάται από το λειτουργικό σύστημα που χρησιμοποιήθηκε για την εγγραφή του αρχικού αρχείου). |
==== Buffered I/O ==== | ==== Buffered I/O ==== | ||
Line 100: | Line 100: | ||
</code> | </code> | ||
- | Υπάρχουν τέσσερις κλάσεις τύπου buffered stream που χρησιμοποιούνται για να τυλίξουν unbuffered strams: Οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html|BufferedInputStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html|BufferedOutputStream]] δημιουργούν buffered byte streams, ενώ οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|BufferedReader]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html|BufferedWriter]] δημιουργούν buffered streams χαρακτήρων. | + | Υπάρχουν τέσσερις κλάσεις τύπου buffered stream που χρησιμοποιούνται για να μετατρέψουν unbuffered streams σε buffered streams: Οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedInputStream.html|BufferedInputStream]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedOutputStream.html|BufferedOutputStream]] δημιουργούν buffered byte streams, ενώ οι [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html|BufferedReader]] και [[http://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html|BufferedWriter]] δημιουργούν buffered streams χαρακτήρων. |
|Προηγούμενο: [[:java:byte_streams | Byte Streams ]] | Επόμενο: [[java:formatting | Μορφοποίηση Εξόδου ]]| | |Προηγούμενο: [[:java:byte_streams | Byte Streams ]] | Επόμενο: [[java:formatting | Μορφοποίηση Εξόδου ]]| |