Table of Contents

Η κλάση File

Η κλάση java.io.File απεικονίζει ένα αρχείο ή κατάλογος από το λειτουργικό σας σύστημα. Μέσω της κλάσης File μπορείτε να έχετε πρόσβαση στα αρχεία του συστήματος σας, να εξετάσετε κατά πόσο ένα αρχείο είναι κατάλογος ή απλό αρχείο, να δείτε τα περιεχόμενα ενός καταλόγου, να εξετάσετε εάν ένα αρχείο είναι εκτελέσιμο ή όχι και άλλα.

Προκειμένου να φτιάξετε ένα αντικείμενο της κλάσης File αρκεί να χρησιμοποιήσετε έναν από τους κατασκευαστές της κλάσης File. Ο πιο απλός κατασκευαστής της κλάσης είναι ο παρακάτω, ο οποίος λαμβάνει ως όρισμα ένα String που περιέχει το path ενός αρχείο και δημιουργεί το αντικείμενο της κλάσης File.

public File(String pathname)

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

File currentDir = new File(".");

Αν θέλετε να δημιουργήσετε ένα αντικείμενο File για το αρχείο myFavoritSong.mp3 που βρίσκεται μέσα στον κατάλογο C:\Users\<YourUsername>\Music\ (αντικαταστήστε το <YourUsername> με το username σας στο λειτουργικό σύστημα Windows), τότε αρκεί να γράψετε

File favoritSong = new File("C:\Users\<YourUsername>\Music\myFavoritSong.mp3");

Μέθοδοι της κλάσης File

Βασικές μέθοδοι της κλάσης File είναι οι παρακάτω:

Παραδείγματα

Παράδειγμα 1

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

CurrentDirList.java
import java.io.File;
 
public class CurrentDirList {
  public static void main(String []args) {
    File currentDir = new File(".");
    File files[] = currentDir.listFiles();
    for(File f : files) {
      System.out.println(f.getName());
    }
  }
}

Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε:

  1. να λαμβάνει το όνομα του directory από την γραμμή εντολών
  2. να εκτυπώνει μόνο αρχεία με κατάληξη .java.
CurrentDirList.java
import java.io.File;
 
public class CurrentDirList {
  public static void main(String []args) {
    if( args.length == 0 ) {
      System.out.println("Insufficient number of arguments!");
      return;
    }
    File currentDir = new File(args[0]);
    File files[] = currentDir.listFiles();
    for(File f : files) {
      if( f.isFile() && f.getName().substring(f.getName().length()-5).equals(".java")  ) {
        System.out.println(f.getName());
      }
    }
  }
}

Παρατηρήστε ότι είναι απαραίτητη η χρήση της εντολής import java.io.File; στην αρχή του αρχείου.

Παράδειγμα 2

Με χρήση της κλάσης java.io.File δημιουργήστε ένα πρόγραμμα που λαμβάνει το όνομα ενός αρχείου από την γραμμή εντολών και εάν δεν υπάρχει το δημιουργεί στο τρέχον directory.

CreateEmptyFile.java
import java.io.File;
 
public class CreateEmptyFile {
  public static void main(String args[]) {
    if( args.length == 0 ) {
      System.out.println("Insufficient number of arguments!");
      return;
    }
    File f = new File("./"+args[0]);
    if( !f.exists() ) {
      try {
        f.createNewFile();
      } catch( Exception ex ) {
        ex.printStackTrace();
      }
    }
  }
}

Με βάση το παραπάνω πρόγραμμα δημιουργήστε μία παραλλαγή του που να δημιουργεί ένα directory με το όνομα που δίνετε από την γραμμή εντολών αντί για ένα κανονικό αρχείο.