Ροή εισαγωγής αρχείων Java στο Ubuntu 20.04

Roe Eisagoges Archeion Java Sto Ubuntu 20 04



«Σε αυτό το άρθρο, θα συζητήσουμε διαφορετικούς τρόπους ανάγνωσης δεδομένων από αρχεία σε πίνακα byte χρησιμοποιώντας την κλάση Java Input Stream. Αυτή η κλάση αντιπροσωπεύει μια ταξινομημένη ροή byte από ένα αρχείο. Υπάρχουν πολλές συναρτήσεις στην κλάση Java Input Stream που χρησιμοποιούνται συνήθως και θα συζητηθούν σε αυτό το άρθρο, όπως οι μέθοδοι read(), available(), skip() και close(). Αυτές οι μέθοδοι χρησιμοποιούνται για την ανάγνωση αρχείων διαφορετικών επεκτάσεων όπως αρχεία bin ή txt και μπορούν να τροποποιηθούν για να ληφθούν πληροφορίες από οποιοδήποτε σημείο του αρχείου. Θα εφαρμόσουμε αυτές τις μεθόδους στο περιβάλλον Ubuntu 20.04 σε αυτό το άρθρο.

Υπάρχουν πολλές περισσότερες μέθοδοι της κλάσης File Input Stream που είναι επίσης πολύ χρήσιμες για τη λήψη δεδομένων από ένα αρχείο. μερικά από αυτά είναι int read(byte[] b), αυτή η συνάρτηση διαβάζει δεδομένα από τη ροή εισόδου έως και b.length byte σε μήκος. Το κανάλι αρχείου παίρνει το κανάλι(): Το συγκεκριμένο αντικείμενο Καναλιού αρχείου που είναι συνδεδεμένο στη ροή εισόδου αρχείου επιστρέφεται χρησιμοποιώντας το. Η Finalize() χρησιμοποιείται για να διασφαλιστεί ότι η συνάρτηση close() καλείται όταν δεν υπάρχει πλέον αναφορά στη ροή εισόδου του αρχείου.'

Παράδειγμα 01: Ανάγνωση ενός μόνο byte από ένα αρχείο κειμένου χρησιμοποιώντας τις μεθόδους read() και close() της κλάσης ροής εισόδου

Αυτό το παράδειγμα χρησιμοποιεί το File Input Stream για να διαβάσει έναν χαρακτήρα και να εκτυπώσει το περιεχόμενο. Ας υποθέσουμε ότι έχουμε ένα αρχείο με το όνομα 'file.txt' με το περιεχόμενο που φαίνεται παρακάτω:









Ας υποθέσουμε ότι έχουμε ένα αρχείο με το όνομα 'file.txt' με το περιεχόμενο που φαίνεται παραπάνω. Ας προσπαθήσουμε τώρα να διαβάσουμε και να εκτυπώσουμε τον πρώτο χαρακτήρα του αρχείου.







Πρέπει πρώτα να εισάγουμε το java.io. File Input Stream πακέτο για τη δημιουργία μιας ροής εισόδου αρχείου. Στη συνέχεια θα δημιουργήσουμε ένα νέο αντικείμενο του File Input Stream που θα συνδεθεί με το αρχείο που έχει καθοριστεί (file.txt) στη μεταβλητή “f”.

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη μέθοδο 'int read()' της κλάσης Java File Input Stream, η οποία χρησιμοποιείται για την ανάγνωση ενός μόνο byte από το αρχείο και την αποθήκευση στη μεταβλητή 'I'. Στη συνέχεια, το 'System.out.print(char(i))' εμφανίζει τον χαρακτήρα που αντιστοιχεί σε αυτό το byte.



Η μέθοδος f.close() κλείνει το αρχείο και τη ροή. Θα λάβουμε την ακόλουθη έξοδο μετά τη δημιουργία και εκτέλεση του προαναφερθέντος σεναρίου, καθώς μπορούμε να δούμε ότι εκτυπώνεται μόνο το αρχικό γράμμα του κειμένου 'L'.

Παράδειγμα 02: Ανάγνωση όλου του περιεχομένου ενός αρχείου κειμένου χρησιμοποιώντας τις μεθόδους read() και close() της κλάσης ροής εισόδου

Σε αυτό το παράδειγμα, θα διαβάζουμε και θα εμφανίζουμε όλα τα περιεχόμενα ενός αρχείου κειμένου. όπως φαίνεται παρακάτω:

Για άλλη μια φορά, θα εισάγουμε το java.io. File Input Stream πακέτο για τη δημιουργία μιας ροής εισόδου αρχείου.

Αρχικά, θα διαβάσουμε το πρώτο byte του αρχείου και θα εμφανίσουμε τον αντίστοιχο χαρακτήρα μέσα στον βρόχο while. Ο βρόχος while θα τρέξει μέχρι να μην μείνουν byte, δηλαδή το τέλος του κειμένου στο αρχείο. Η γραμμή 12 θα διαβάσει το επόμενο byte και ο βρόχος θα συνεχίσει μέχρι το τελευταίο byte του αρχείου.

Μετά τη μεταγλώττιση και εκτέλεση του παραπάνω κώδικα, θα έχουμε τα ακόλουθα αποτελέσματα. Όπως μπορούμε να δούμε, ολόκληρο το κείμενο του αρχείου 'Lorep Ipsum' εμφανίζεται στο τερματικό.

Παράδειγμα 03: Προσδιορισμός του αριθμού των διαθέσιμων byte σε ένα αρχείο κειμένου χρησιμοποιώντας τη μέθοδο διαθέσιμη() της κλάσης ροής εισόδου

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη συνάρτηση 'available()' του File Input Stream για να προσδιορίσουμε τον αριθμό των υπαρχόντων byte στη ροή εισόδου αρχείου.

Αρχικά, δημιουργήσαμε ένα αντικείμενο κλάσης ροής εισόδου αρχείου με το όνομα 'a' με τον ακόλουθο κώδικα. Στη γραμμή 5, χρησιμοποιήσαμε τη μέθοδο 'available()' για να προσδιορίσουμε και να εμφανίσουμε τη συνολική ποσότητα των διαθέσιμων byte στο αρχείο. Στη συνέχεια, από τη γραμμή 6 έως τη γραμμή 8, χρησιμοποιήσαμε τη συνάρτηση «read()» τρεις φορές. Τώρα στη γραμμή 9, χρησιμοποιήσαμε ξανά τη μέθοδο 'available()' για να ελέγξουμε και να εμφανίσουμε τα υπόλοιπα byte.

Μετά τη μεταγλώττιση και εκτέλεση του κώδικα, μπορούμε να δούμε ότι η πρώτη γραμμή της εξόδου δείχνει τον συνολικό αριθμό των διαθέσιμων byte στο αρχείο. Η επόμενη γραμμή δείχνει τον αριθμό των byte που είναι διαθέσιμα στο τέλος του κώδικα, ο οποίος είναι 3 μικρότερος από τα byte που είναι διαθέσιμα στην αρχή. Αυτό συμβαίνει επειδή χρησιμοποιήσαμε τη μέθοδο ανάγνωσης τρεις φορές στον κώδικά μας.

Παράδειγμα 04: Παράλειψη byte ενός αρχείου κειμένου για ανάγνωση δεδομένων από ένα συγκεκριμένο σημείο χρησιμοποιώντας τη μέθοδο skip() της κλάσης ροής εισόδου

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε τη μέθοδο 'skip(x)' της ροής εισόδου αρχείου, η οποία χρησιμοποιείται για να αγνοήσει και να αγνοήσει τον δεδομένο αριθμό byte δεδομένων από τη ροή εισόδου.

Στον παρακάτω κώδικα, πρώτα δημιουργήσαμε μια ροή εισόδου αρχείου και την αποθηκεύσαμε στη μεταβλητή 'a'. Στη συνέχεια, χρησιμοποιήσαμε τη μέθοδο 'a.skip(5)', η οποία θα παρακάμψει τα πρώτα 5 byte του αρχείου. Στη συνέχεια, εκτυπώσαμε τους υπόλοιπους χαρακτήρες του αρχείου χρησιμοποιώντας τη μέθοδο 'read()' μέσα σε ένα βρόχο while. Τέλος, κλείσαμε τη ροή εισόδου αρχείου με τη μέθοδο “close()”.

Παρακάτω είναι το στιγμιότυπο οθόνης του τερματικού μετά τη μεταγλώττιση και εκτέλεση του κώδικα. Όπως μπορούμε να δούμε, εμφανίζεται μόνο το 'Ipsum' καθώς έχουμε παραλείψει τα πρώτα 5 byte χρησιμοποιώντας τη μέθοδο 'skip()'.

συμπέρασμα

Σε αυτό το άρθρο, έχουμε συζητήσει τις χρήσεις της κλάσης File Input Stream και τις διαφορετικές μεθόδους της. read(), available(), skip() και close(). Χρησιμοποιήσαμε αυτές τις μεθόδους για να διαβάσουμε το πρώτο στοιχείο ενός αρχείου χρησιμοποιώντας τις μεθόδους read() και close(). Στη συνέχεια διαβάζουμε ολόκληρο το αρχείο μέσω της επαναληπτικής προσέγγισης και χρησιμοποιώντας τις ίδιες μεθόδους. Στη συνέχεια χρησιμοποιήσαμε τη μέθοδο available() για να προσδιορίσουμε τον αριθμό των byte που υπάρχουν κατά την έναρξη και την ολοκλήρωση του αρχείου. Μετά από αυτό, χρησιμοποιήσαμε τη μέθοδο skip() για να παραλείψουμε πολλά byte πριν διαβάσουμε το αρχείο, κάτι που μας επέτρεψε να λάβουμε τα συγκεκριμένα δεδομένα που χρειαζόμασταν.