Java FileReader (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθουμε για το Java FileReader και τις μεθόδους του με τη βοήθεια παραδειγμάτων.

Η FileReaderκλάση του java.ioπακέτου μπορεί να χρησιμοποιηθεί για την ανάγνωση δεδομένων (σε χαρακτήρες) από αρχεία.

Επεκτείνει την InputSreamReaderτάξη.

Πριν μάθετε FileReader, βεβαιωθείτε ότι γνωρίζετε για το αρχείο Java.

Δημιουργήστε ένα FileReader

Για να δημιουργήσουμε ένα πρόγραμμα ανάγνωσης αρχείων, πρέπει java.io.FileReaderπρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε το πρόγραμμα ανάγνωσης αρχείων.

1. Χρησιμοποιώντας το όνομα του αρχείου

 FileReader input = new FileReader(String name); 

Εδώ, δημιουργήσαμε ένα πρόγραμμα ανάγνωσης αρχείων που θα συνδεθεί με το αρχείο που καθορίζεται από το όνομα.

2. Χρήση ενός αντικειμένου του αρχείου

 FileReader input = new FileReader(File fileObj); 

Εδώ, δημιουργήσαμε ένα πρόγραμμα ανάγνωσης αρχείων που θα συνδεθεί με το αρχείο που καθορίζεται από το αντικείμενο του αρχείου.

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

Ωστόσο, από την Java 11 μπορούμε να καθορίσουμε τον τύπο κωδικοποίησης χαρακτήρων ( UTF-8 ή UTF-16 ) και στο αρχείο.

 FileReader input = new FileReader(String file, Charset cs); 

Εδώ, χρησιμοποιήσαμε την Charsetτάξη για να καθορίσουμε την κωδικοποίηση χαρακτήρων του προγράμματος ανάγνωσης αρχείων.

Μέθοδοι του FileReader

Η FileReaderτάξη παρέχει υλοποιήσεις για διαφορετικές μεθόδους που υπάρχουν στην Readerτάξη.

read () Μέθοδος

  • read() - διαβάζει έναν μόνο χαρακτήρα από τον αναγνώστη
  • read(char() array) - διαβάζει τους χαρακτήρες από τον αναγνώστη και αποθηκεύει στον καθορισμένο πίνακα
  • read(char() array, int start, int length) - διαβάζει τον αριθμό των χαρακτήρων ίσο με το μήκος από τον αναγνώστη και αποθηκεύει στον καθορισμένο πίνακα ξεκινώντας από την αρχή της θέσης

Για παράδειγμα, ας υποθέσουμε ότι έχουμε ένα αρχείο με όνομα input.txt με το ακόλουθο περιεχόμενο.

 This is a line of text inside the file. 

Ας προσπαθήσουμε να διαβάσουμε το αρχείο χρησιμοποιώντας FileReader.

 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 FileReader input = new FileReader("input.txt"); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Παραγωγή

 Δεδομένα στο αρχείο: Αυτή είναι μια γραμμή κειμένου μέσα στο αρχείο. 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει ένα πρόγραμμα ανάγνωσης αρχείων που ονομάζεται input. Ο αναγνώστης αρχείων συνδέεται με το αρχείο input.txt .

 FileInputStream input = new FileInputStream("input.txt"); 

Για να διαβάσετε δεδομένα από το αρχείο, χρησιμοποιήσαμε τη read()μέθοδο.

getEncoding () Μέθοδος

Η getEncoding()μέθοδος μπορεί να χρησιμοποιηθεί για τη λήψη του τύπου κωδικοποίησης που χρησιμοποιείται για την αποθήκευση δεδομένων στο αρχείο. Για παράδειγμα,

 import java.io.FileReader; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( try ( // Creates a FileReader with default encoding FileReader input1 = new FileReader("input.txt"); // Creates a FileReader specifying the encoding FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); // Returns the character encoding of the file reader System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Παραγωγή

 Η κωδικοποίηση χαρακτήρων του input1: Cp1252 Η κωδικοποίηση χαρακτήρων του input2: UTF8 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει 2 αναγνώστες αρχείων που ονομάζονται input1 και input2.

  • Το input1 δεν καθορίζει την κωδικοποίηση χαρακτήρων. Εξ ου και η getEncoding()μέθοδος επιστρέφει την προεπιλεγμένη κωδικοποίηση χαρακτήρων.
  • Το input2 καθορίζει την κωδικοποίηση χαρακτήρων, UTF8 . Εξ ου και η getEncoding()μέθοδος επιστρέφει την καθορισμένη κωδικοποίηση χαρακτήρων.

Σημείωση : Χρησιμοποιήσαμε τη Charset.forName()μέθοδο για να καθορίσουμε τον τύπο κωδικοποίησης χαρακτήρων. Για να μάθετε περισσότερα, επισκεφθείτε το Java Charset (επίσημη τεκμηρίωση Java).

κλείσιμο () Μέθοδος

Για να κλείσουμε το πρόγραμμα ανάγνωσης αρχείων, μπορούμε να χρησιμοποιήσουμε τη close()μέθοδο. Μόλις close()κληθεί η μέθοδος, δεν μπορούμε να χρησιμοποιήσουμε τον αναγνώστη για να διαβάσουμε τα δεδομένα.

Άλλες μέθοδοι του FileReader

Μέθοδος Περιγραφή
ready() ελέγχει εάν η συσκευή ανάγνωσης αρχείων είναι έτοιμη για ανάγνωση
mark() επισημάνετε τη θέση στη συσκευή ανάγνωσης αρχείων μέχρι την οποία έχουν διαβαστεί τα δεδομένα
reset() επιστρέφει το στοιχείο ελέγχου στο σημείο της συσκευής ανάγνωσης όπου ορίστηκε το σήμα

Για να μάθετε περισσότερα, επισκεφθείτε το Java FileReader (επίσημη τεκμηρίωση Java).

ενδιαφέροντα άρθρα...