Πώς να διαβάσετε ένα αρχείο στην Java;
Η Java παρέχει διάφορους μηχανισμούς για ανάγνωση από το αρχείο. Το πιο χρήσιμο πακέτο που παρέχεται για αυτό είναι το java.io.Reader. Αυτή η τάξη περιέχει το Class Java BufferedReader στο πακέτο java.io.BufferedReader
Τι είναι το BufferedReader στην Java;
Το BufferedReader είναι μια κλάση Java για την ανάγνωση του κειμένου από μια ροή εισόδου (όπως ένα αρχείο) με προσωρινή αποθήκευση χαρακτήρων που διαβάζει απρόσκοπτα χαρακτήρες, πίνακες ή γραμμές. Γενικά, κάθε αίτημα ανάγνωσης που γίνεται από έναν αναγνώστη προκαλεί την υποβολή αντίστοιχου αιτήματος ανάγνωσης του υποκείμενου χαρακτήρα ή της ροής byte.
Συνιστάται επομένως να τυλίξετε το BufferedReader στην Java γύρω από οποιονδήποτε αναγνώστη του οποίου οι εργασίες ανάγνωσης () ενδέχεται να είναι δαπανηρές, όπως το java FileReaders και το InputStreamReaders. Μια τυπική χρήση θα περιλαμβάνει τη μετάδοση της διαδρομής αρχείου στο BufferedReader στην Java ως εξής:
objReader = new BufferedReader(new FileReader("D:\DukesDiary.txt"));//Assuming you have a text file in D drive
Αυτό βασικά φορτώνει το αρχείο σας στο objReader. Τώρα, θα πρέπει να επαναλάβετε τα περιεχόμενα του αρχείου και να το εκτυπώσετε.
Ο βρόχος while στον παρακάτω κώδικα θα διαβάσει το αρχείο μέχρι να φτάσει στο τέλος του αρχείου
while ((strCurrentLine = objReader.readLine()) != null) {System.out.println(strCurrentLine);}
Το strCurrentLine διαβάζει την τρέχουσα γραμμή και η συνάρτηση Java readLine objReader.readLine () επιστρέφει μια συμβολοσειρά. Επομένως, ο βρόχος θα επαναληφθεί έως ότου δεν είναι μηδενικός.
Παράδειγμα BufferedReader:
Ο παρακάτω κώδικας είναι ένα παράδειγμα Java BufferedReader που δείχνει την πλήρη υλοποίηση:
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFileExample {public static void main(String[] args) {BufferedReader objReader = null;try {String strCurrentLine;objReader = new BufferedReader(new FileReader("D:\\DukesDiary.txt"));while ((strCurrentLine = objReader.readLine()) != null) {System.out.println(strCurrentLine);}} catch (IOException e) {e.printStackTrace();} finally {try {if (objReader != null)objReader.close();} catch (IOException ex) {ex.printStackTrace();}}}}
Σημείωση:
Ο παραπάνω κώδικας έχει κάποιους πολύ σημαντικούς χειρισμούς ειδικά στο τελευταίο μπλοκ του κώδικα.
Αυτός ο κωδικός θα διασφαλίσει ότι η διαχείριση της μνήμης γίνεται αποτελεσματικά και καλείται η μέθοδος objReader.close () που απελευθερώνει τη μνήμη.
Παράδειγμα BufferedReader JDK7:
Ακολουθεί το παράδειγμα των αρχείων ανάγνωσης Java που χρησιμοποιούν την κλάση BufferedReader
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFileExample_jdk7 {private static final String FILENAME = "D:\\DukesDiary.txt";public static void main(String[] args) {try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {String strCurrentLine;while ((strCurrentLine = br.readLine()) != null) {System.out.println(strCurrentLine);}} catch (IOException e) {e.printStackTrace();}}}