Πώς λειτουργεί το Java InputStream

Pos Leitourgei To Java Inputstream



Η Java επιτρέπει στους προγραμματιστές να εργαστούν με τα αρχεία. Σε μια τέτοια περίπτωση, το « InputStream Η κλάση τίθεται σε ισχύ που βοηθά στην ανάγνωση των καθορισμένων περιεχομένων του αρχείου μαζί με την ανάλυση των περιεχόμενων byte. Αυτό έχει ως αποτέλεσμα την αντιμετώπιση των προβλημάτων μνήμης και επίσης την αποτελεσματική επιστροφή του επιλεκτικού περιεχομένου αρχείου σύμφωνα με την απαίτηση.

Αυτή η εγγραφή θα αναλύσει τη λειτουργία του 'InputStream' στην Java.







Πώς λειτουργεί το Java InputStream;

Η κλάση 'InputStream' του ' java.io Το πακέτο αντιστοιχεί σε μια αφηρημένη υπερκλάση που επιστρέφει μια ροή εισόδου που αποτελείται από byte σε σχέση με το καθορισμένο αρχείο.



Υποκατηγορίες του InputStream

Για την εφαρμογή των λειτουργιών 'InputStream', μπορούν να χρησιμοποιηθούν οι ακόλουθες υποκατηγορίες του:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

Είναι τέτοιο που αυτές οι υποκλάσεις επεκτείνουν την κλάση 'InputStream'.





Μέθοδοι InputStream

Η κλάση 'InputStream' περιέχει διαφορετικές μεθόδους που εφαρμόζονται από τις υποκλάσεις της. Ακολουθούν μερικές από τις πιο συχνά χρησιμοποιούμενες μεθόδους:

Μέθοδοι Λειτουργικότητα
ανάγνωση() Διαβάζει ένα byte δεδομένων από τη ροή εισόδου.



ανάγνωση (byte[] πίνακας) Διαβάζει επίσης byte από τη ροή και τα αποθηκεύει στον πίνακα προορισμού.

παραλείπω() Αυτή η μέθοδος παραλείπει/παραλείπει τον συγκεκριμένο αριθμό byte από τη ροή εισόδου.

διαθέσιμος() Δίνει τα περιεχόμενα byte στη ροή εισόδου.
επαναφορά() Παρέχει πρόσβαση στο σημείο ροής όπου ορίστηκε το σήμα.

σημάδι() Αυτή η μέθοδος επισημαίνει τη θέση στη ροή μέχρι την οποία έχουν αναγνωσθεί τα δεδομένα.

markSupported() Αναλύει εάν οι μέθοδοι 'mark()' και 'reset()' υποστηρίζονται/συμβατές στη ροή.


Πριν προχωρήσετε στο παράδειγμα, εισαγάγετε τα ακόλουθα πακέτα για να εργαστείτε με το 'InputStream' και την υποκατηγορία του:

εισαγωγή java.io.FileInputStream;
εισαγωγή java.io.InputStream;


Παράδειγμα: Λειτουργία του InputStream σε Java

Αυτό το παράδειγμα επεξηγεί τη λειτουργία του 'InputStream' διαβάζοντας το περιεχόμενο του αρχείου μέσω των μεθόδων 'InputStream':

Ροή εισόδου δημόσιας κλάσης {
δημόσιο στατικό κενό κύριο ( Σχόρδος [ ] ) {
ψηφιόλεξη [ ] δεδομένος πίνακας = νέο byte [ πενήντα ] ;
δοκιμάστε {
InputStream readData = νέο FileInputStream ( 'readfile.txt' ) ;
System.out.println ( 'Bytes στο αρχείο ->' + readData.available ( ) ) ;
readData.read ( δεδομένη συστοιχία ) ;
System.out.println ( 'Ανάγνωση δεδομένων αρχείου: ' ) ;
String containdata = νέα συμβολοσειρά ( δεδομένη συστοιχία ) ;
System.out.println ( περιέχει δεδομένα ) ;
readData.close ( ) ;
}
σύλληψη ( Εξαίρεση εκτός ) {
Εκτός από.getStackTrace ( ) ;
}
} }


Σύμφωνα με τις παραπάνω γραμμές κώδικα, εκτελέστε τα παρακάτω βήματα:

    • Αρχικά, δημιουργήστε έναν πίνακα 'byte' που μπορεί να περιλαμβάνει το μέγιστο ' πενήντα ' τιμές byte στο αρχείο ανάγνωσης.
    • Στο επόμενο βήμα, δημιουργήστε ένα ' InputStream ' χρησιμοποιώντας το 'FileInputStream' και επιστρέψτε τα διαθέσιμα byte στο καθορισμένο αρχείο μέσω του συσχετισμένου ' διαθέσιμος() 'μέθοδος.
    • Μετά από αυτό, διαβάστε τα byte από τη ροή εισόδου χρησιμοποιώντας το ' ανάγνωση() 'μέθοδος.
    • Τώρα, μετατρέψτε τον πίνακα byte σε συμβολοσειρά και εμφανίστε τα περιεχόμενα του αρχείου.
    • Τέλος, κλείστε το αρχείο ανάγνωσης χρησιμοποιώντας το σχετικό ' Κλείσε() 'μέθοδος.

Παραγωγή


Σε αυτό το αποτέλεσμα, μπορεί να υπονοηθεί ότι ο αριθμός των byte στο αρχείο, δηλ. ο συσσωρευμένος χώρος από το περιεχόμενο επιστρέφεται σύμφωνα με το μέγιστο εύρος στον πίνακα byte, δηλαδή '50'. Επίσης, το περιεχόμενο του αρχείου επιστρέφεται κατάλληλα.

Περιεχόμενο αρχείου


Για να πάρετε μια επισκόπηση του ' παραλείπω() ' και ' επαναφορά() », εξετάστε την ακόλουθη επίδειξη:


Σε αυτήν την εικόνα, η μέθοδος 'skip()' παρακάμπτει τον καθορισμένο αριθμό byte, π.χ., ' 5 -> Java ” από το περιεχόμενο του αρχείου από την αρχή. Ωστόσο, η μέθοδος 'reset()' επαναφέρει τη ροή.

συμπέρασμα

Ο ' InputStream 'τάξη του ' java.io Το πακέτο είναι μια αφηρημένη υπερκλάση που αντιστοιχεί σε μια ροή εισόδου byte που χρησιμοποιείται για την ανάγνωση των δεδομένων του αρχείου. Αυτή η κλάση περιλαμβάνει διάφορες μεθόδους που βοηθούν στις μεθοδολογίες ανάγνωσης του αρχείου αποτελεσματικά σύμφωνα με τις απαιτήσεις. Αυτό το ιστολόγιο κατέδειξε τον σκοπό και τη λειτουργία του 'InputStream' σε Java.