Σε αυτό το σεμινάριο, θα μάθουμε για το Java Reader, τις υποκατηγορίες του και τις μεθόδους του με τη βοήθεια ενός παραδείγματος.
Η Reader
κλάση του java.io
πακέτου είναι μια αφηρημένη superclass που αντιπροσωπεύει μια ροή χαρακτήρων.
Εφόσον Reader
είναι μια αφηρημένη τάξη, δεν είναι από μόνη της χρήσιμη. Ωστόσο, οι υποκατηγορίες του μπορούν να χρησιμοποιηθούν για την ανάγνωση δεδομένων.
Υποκατηγορίες του Αναγνώστη
Για να χρησιμοποιήσουμε τη λειτουργικότητα του Reader
, μπορούμε να χρησιμοποιήσουμε τις υποκατηγορίες του. Κάποιοι από αυτούς είναι:
- BufferedReader
- InputStreamReader
- Αναγνώστης αρχείων
- StringReader
Θα μάθουμε για όλες αυτές τις υποκατηγορίες στο επόμενο σεμινάριο.
Δημιουργήστε έναν αναγνώστη
Για να δημιουργήσουμε ένα Reader
, πρέπει java.io.Reader
πρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε τον αναγνώστη.
// Creates a Reader Reader input = new FileReader();
Εδώ, δημιουργήσαμε έναν αναγνώστη χρησιμοποιώντας την FileReader
τάξη. Είναι επειδή Reader
είναι μια αφηρημένη τάξη. Ως εκ τούτου δεν μπορούμε να δημιουργήσουμε ένα αντικείμενο Reader
.
Σημείωση : Μπορούμε επίσης να δημιουργήσουμε αναγνώστες από άλλες υποκατηγορίες του Reader
.
Μέθοδοι αναγνώστη
Η Reader
τάξη παρέχει διαφορετικές μεθόδους που εφαρμόζονται από τις υποκατηγορίες της. Ακολουθούν μερικές από τις κοινώς χρησιμοποιούμενες μεθόδους:
ready()
- ελέγχει εάν ο αναγνώστης είναι έτοιμος για ανάγνωσηread(char() array)
- διαβάζει τους χαρακτήρες από τη ροή και αποθηκεύει στον καθορισμένο πίνακαread(char() array, int start, int length)
- διαβάζει τον αριθμό χαρακτήρων ίσο με το μήκος από τη ροή και αποθηκεύει στον καθορισμένο πίνακα ξεκινώντας από την αρχήmark()
- επισημαίνει τη θέση στη ροή μέχρι την οποία έχουν διαβαστεί τα δεδομέναreset()
- επιστρέφει το στοιχείο ελέγχου στο σημείο της ροής όπου έχει οριστεί το σήμαskip()
- απορρίπτει τον καθορισμένο αριθμό χαρακτήρων από τη ροή
Παράδειγμα: Αναγνώστης χρησιμοποιώντας το FileReader
Εδώ είναι πώς μπορούμε να εφαρμόσουμε Reader
χρησιμοποιώντας την FileReader
τάξη.
Ας υποθέσουμε ότι έχουμε ένα αρχείο με όνομα input.txt με το ακόλουθο περιεχόμενο.
This is a line of text inside the file.
Ας προσπαθήσουμε να διαβάσουμε αυτό το αρχείο χρησιμοποιώντας FileReader
(μια υποκατηγορία Reader
).
import java.io.Reader; import java.io.FileReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader Reader input = new FileReader("input.txt"); // Checks if reader is ready System.out.println("Is there data in the stream? " + input.ready()); // Reads characters input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Παραγωγή
Υπάρχουν δεδομένα στη ροή; true Data στη ροή: Αυτή είναι μια γραμμή κειμένου μέσα στο αρχείο.
Στο παραπάνω παράδειγμα, δημιουργήσαμε έναν αναγνώστη χρησιμοποιώντας την FileReader
τάξη. Ο αναγνώστης συνδέεται με το αρχείο input.txt .
Reader input = new FileReader("input.txt");
Για να διαβάσετε δεδομένα από το αρχείο input.txt , έχουμε εφαρμόσει αυτές τις μεθόδους.
input.read(); // to read data from the reader input.close(); // to close the reader
Για να μάθετε περισσότερα, επισκεφθείτε το Java Reader (επίσημη τεκμηρίωση Java).