Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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();
}
}
}
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(); } } }
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″]

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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();
}
}
}
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(); } } }
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 για να πάρει πληροφορίες για ένα αρχείο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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.");
}
}
}
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."); } } }
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 !!
Μετάβαση σε γραμμή εργαλείων