6.3 Ανάγνωση αρχείων στην Java

Η ανάγνωση αρχείων στην Java αποτελεί διαδικασία κατά την οποία το πρόγραμμα διαβάζει τα περιεχόμενα ενός αρχείου και τα χρησιμοποιεί για επεξεργασία ή εμφάνιση. Υπάρχουν διάφοροι τρόποι για να διαβάσουμε αρχεία στην Java, και ο κατάλληλος τρόπος εξαρτάται από τις ανάγκες του προγράμματος και τον τύπο του αρχείου.

Ένας τυπικός τρόπος ανάγνωσης αρχείων είναι η χρήση της κλάσης File για να αναπαραστήσουμε το αρχείο και της κλάσης Scanner για να διαβάσουμε το περιεχόμενο του. Ακολουθεί ένα παράδειγμα κώδικα που επιδεικνύει την ανάγνωση ενός αρχείου με χρήση αυτής της μεθόδου:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileExample {
    public static void main(String[] args) {
        try {
            // Δημιουργία ενός αντικειμένου File για το αρχείο που θέλουμε να διαβάσουμε
            File file = new File("filename.txt");
            
            // Δημιουργία ενός αντικειμένου Scanner για την ανάγνωση του αρχείου
            Scanner scanner = new Scanner(file);

            // Επανάληψη για κάθε γραμμή του αρχείου
            while (scanner.hasNextLine()) {
                // Διάβασμα της επόμενης γραμμής από το Scanner
                String line = scanner.nextLine();
                
                // Εκτύπωση της γραμμής
                System.out.println(line);
            }

            // Κλείσιμο του Scanner
            scanner.close();
        } catch (FileNotFoundException e) {
            // Αν το αρχείο δεν βρεθεί, εκτύπωση μηνύματος λάθους και αναφοράς στο στοίχημα
            System.out.println("Το αρχείο δεν βρέθηκε.");
            e.printStackTrace();
        }
    }
}

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο της κλάσης File με το όνομα “filename.txt” για να αναπαραστήσουμε το αρχείο που θέλουμε να διαβάσουμε. Στη συνέχεια, δημιουργούμε ένα αντικείμενο Scanner που διαβάζει το περιεχόμενο του αρχείου. Χρησιμοποιούμε τη μέθοδο hasNextLine() για να ελέγξουμε αν υπάρχει επόμενη γραμμή στο αρχείο και τη μέθοδο nextLine() για να διαβάσουμε την επόμενη γραμμή. Επαναλαμβάνουμε αυτήν τη διαδικασία μέχρι να διαβάσουμε όλο το περιεχόμενο του αρχείου.

Στο παράδειγμα, εκτυπώνουμε κάθε γραμμή που διαβάζουμε στην οθόνη. Μετά το πέρας της ανάγνωσης, κλείνουμε τον Scanner.

Αυτός είναι ένας βασικός τρόπος ανάγνωσης αρχείων στην Java, αλλά υπάρχουν και άλλες μέθοδοι και κλάσεις που μπορούν να χρησιμοποιηθούν, ανάλογα με τις απαιτήσεις του προγράμματος και τον τύπο του αρχείου που πρέπει να διαβαστεί.

[adinserter block=”2″]

Παρακάτω έχουμε ένα παράδειγμα που διαβάζει ένα αρχείο και εμφανίζει τα περιεχόμενά του:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadFileExample {
  public static void main(String[] args) {
    try {
      // Δημιουργία αντικειμένου File για να αναπαραστήσει το αρχείο "filename.txt"
      File myObj = new File("filename.txt");

      // Δημιουργία αντικειμένου Scanner για την ανάγνωση του αρχείου
      Scanner myReader = new Scanner(myObj);

      // Επανάληψη μέχρι να υπάρχουν επόμενες γραμμές στο αρχείο
      while (myReader.hasNextLine()) {
        // Ανάγνωση της επόμενης γραμμής από το αρχείο
        String data = myReader.nextLine();

        // Εκτύπωση της γραμμής
        System.out.println(data);
      }

      // Κλείσιμο του αντικειμένου Scanner μετά την ολοκλήρωση της ανάγνωσης
      myReader.close();
    } catch (FileNotFoundException e) {
      // Εκτύπωση μηνύματος σφάλματος αν δεν βρεθεί το αρχείο
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}

Ο παραπάνω κώδικας διαβάζει ένα αρχείο κειμένου με το όνομα “filename.txt” και εμφανίζει τα περιεχόμενά του στην οθόνη. Ο κώδικας εκμεταλλεύεται την κλάση File για την αναπαράσταση του αρχείου και την κλάση Scanner για τη διαβάσματα του περιεχομένου του αρχείου γραμμή προς γραμμή.

Ο κώδικας ακολουθεί τα παρακάτω βήματα:

  1. Δημιουργείται ένα αντικείμενο File με το όνομα “filename.txt” που αναπαριστά το επιθυμητό αρχείο.
  2. Δημιουργείται ένα αντικείμενο Scanner με όρισμα το αντικείμενο File, προκειμένου να διαβάσει το περιεχόμενο του αρχείου.
  3. Ο κώδικας επαναλαμβάνεται μέχρι να υπάρχουν επόμενες γραμμές στο αρχείο.
  4. Σε κάθε επανάληψη, διαβάζεται η επόμενη γραμμή του αρχείου με τη χρήση της μεθόδου nextLine() του αντικειμένου Scanner.
  5. Η γραμμή που διαβάστηκε αποθηκεύεται στη μεταβλητή data.
  6. Η μεταβλητή data εκτυπώνεται στην οθόνη με τη χρήση της μεθόδου println() της κλάσης System.out.
  7. Ο κώδικας συνεχίζει να επαναλαμβάνεται μέχρι να διαβαστούν όλες οι γραμμές του αρχείου.
  8. Μετά το πέρας της επανάληψης, το αντικείμενο Scanner κλείνει με τη χρήση της μεθόδου close(), προκειμένου να απελευθερώσει τους πόρους που χρησιμοποιούσε.

Έτσι, ο κώδικας διαβάζει το αρχείο “filename.txt” γραμμή προς γραμμή και εμφανίζει τις γραμμές στην οθόνη.

Είναι σημαντικό να κλείσετε το αρχείο με τη μέθοδο close() της κλάσης Scanner μόλις τελειώσετε με την ανάγνωσή του.

Για να λάβετε περισσότερες πληροφορίες για ένα αρχείο, χρησιμοποιήστε οποιαδήποτε από τις μεθόδους της κλάσης File:

ΜέθοδοςΤύποςΠεριγραφή
canRead()BooleanΕπιστρέφει αν το αρχείο μπορεί να διαβαστεί.
canWrite()BooleanΕπιστρέφει αν το αρχείο μπορεί να γραφτεί.
exists()BooleanΕπιστρέφει αν το αρχείο υπάρχει.
getName()StringΕπιστρέφει το όνομα του αρχείου.
getParent()StringΕπιστρέφει το όνομα του πατέρα του αρχείου.
getPath()StringΕπιστρέφει το μονοπάτι του αρχείου.
isDirectory()BooleanΕπιστρέφει αν το αρχείο είναι ένας φάκελος ή όχι.
isFile()BooleanΕπιστρέφει αν το αρχείο είναι ένα αρχείο ή όχι.
length()LongΕπιστρέφει το μέγεθος του αρχείου σε bytes.
lastModified()LongΕπιστρέφει την τελευταία φορά που τροποποιήθηκε το αρχείο σε μορφή χρονικής σήμανσης Unix.

Παρακάτω έχουμε ένα παράδειγμα που χρησιμοποιεί μερικές από τις μεθόδους της κλάσης File για να πάρει πληροφορίες για ένα αρχείο:

import java.io.File;
import java.util.Date;

public class FileInfoExample {
    public static void main(String[] args) {
        // Δημιουργία ενός αντικειμένου File με το όνομα "example.txt"
        File file = new File("example.txt");

        // Έλεγχος εάν το αρχείο υπάρχει
        if (file.exists()) {
            // Εμφάνιση του ονόματος του αρχείου
            System.out.println("File name: " + file.getName());

            // Εμφάνιση της απόλυτης διαδρομής του αρχείου
            System.out.println("Absolute path: " + file.getAbsolutePath());

            // Εμφάνιση του γονικού φακέλου του αρχείου
            System.out.println("Parent directory: " + file.getParent());

            // Εμφάνιση του μεγέθους του αρχείου σε bytes
            System.out.println("File size: " + file.length() + " bytes");

            // Εμφάνιση της τελευταίας τροποποίησης του αρχείου
            System.out.println("Last modified: " + new Date(file.lastModified()));
        } else {
            System.out.println("The file does not exist.");
        }
    }
}

Ο παραπάνω κώδικας ελέγχει τις πληροφορίες ενός αρχείου με το όνομα “example.txt” και εμφανίζει αυτές τις πληροφορίες στην οθόνη. Αν το αρχείο υπάρχει, εμφανίζονται τα εξής στοιχεία:

  • Όνομα αρχείου: Το όνομα του αρχείου “example.txt”.
  • Απόλυτη διαδρομή: Η απόλυτη διαδρομή του αρχείου στο σύστημα αρχείων.
  • Γονικός φάκελος: Ο φάκελος στον οποίο βρίσκεται το αρχείο.
  • Μέγεθος αρχείου: Το μέγεθος του αρχείου σε bytes.
  • Τελευταία τροποποίηση: Η ημερομηνία και ώρα της τελευταίας τροποποίησης του αρχείου.

Αν το αρχείο δεν υπάρχει, εμφανίζεται το μήνυμα “The file does not exist.” στην οθόνη.

16 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων