java:class_file

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:class_file [2016/03/18 14:55]
gthanos created
java:class_file [2016/03/18 15:45]
gthanos [Παραδείγματα]
Line 1: Line 1:
 ====== Η κλάση File ====== ====== Η κλάση File ======
  
-Η κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​File.html|java.io.File]] απεικονίζει ένα αρχείο ή directory από το λειτουργικό σας σύστημα. ​+Η κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​File.html|java.io.File]] απεικονίζει ένα αρχείο ή directory από το λειτουργικό σας σύστημα. ​Μέσω της κλάσης File μπορείτε να έχετε πρόσβαση στα αρχεία του συστήματος σας, να εξετάσετε κατά πόσο ένα αρχείο είναι directory ή απλό αρχείο,​ να δείτε τα περιεχόμενα ενός directory, να εξετάσετε εάν ένα αρχείο είναι εκτελέσιμο ή όχι και άλλα.  
 + 
 +Προκειμένου να φτιάξετε ένα αντικείμενο της κλάσης File αρκεί να χρησιμοποιήσετε έναν από τους κατασκευαστές της κλάσης File. Ο πιο απλός κατασκευαστής της κλάσης είναι ο παρακάτω,​ ο οποίος λαμβάνει ως όρισμα ένα String που περιέχει το path ενός αρχείο και δημιουργεί το αντικείμενο της κλάσης File. 
 +<code java> 
 +public File(String pathname) 
 +</​code>​ 
 + 
 +Για παράδειγμα,​ αν θέλετε να δημιουργήσετε ένα αντικείμενο File για το τρέχον Directory αρκεί να γράψετε 
 +<code java> 
 +File currentDir = new File("​."​);​ 
 +</​code>​ 
 + 
 + 
 +Αν θέλετε να δημιουργήσετε ένα αντικείμενο File για το αρχείο myFavoritSong.mp3 που βρίσκεται μέσα στον κατάλογο C:​\Users\<​YourUsername>​\Music\ (αντικαταστήστε το <​YourUsername>​ με το username σας στο λειτουργικό σύστημα Windows), τότε αρκεί να γράψετε 
 +<code java> 
 +File favoritSong = new File("​C:​\Users\<​YourUsername>​\Music\myFavoritSong.mp3"​);​ 
 +</​code>​ 
 + 
 +===== Μέθοδοι της κλάσης File ===== 
 + 
 +Βασικές μέθοδοι της κλάσης File είναι οι παρακάτω:​ 
 +  * ''​public boolean canExecute()''​ : Ελέγχει εάν το αρχείο είναι εκτελέσιμο. 
 +  * ''​public boolean canRead()''​ : Ελέγχει εάν μπορούμε να ανοίξουμε το αρχείο για διάβασμα. 
 +  * ''​public boolean canWrite()''​ : Ελέγχει εάν μπορούμε να ανοίξουμε το αρχείο για γράψιμο. 
 +  * ''​public boolean delete()''​ : Επιχειρεί να διαγράψει το αρχείο ή κατάλογο. Επιστρέφει **true** εάν επέτυχε η διαγραφή,​ διαφορετικά **false**. 
 +  * ''​public boolean exists()''​ : Ελέγχει εάν το συγκεκριμένο αντικείμενο αντικατοπτρίζει ένα πραγματικό αρχείο ή κατάλογο στο filesystem. 
 +  * ''​public String getAbsolutePath()''​ : Επιστρέφει το απόλυτο path για ένα υπαρκτό αρχείο ή κατάλογο. Η συγκεκριμένη μέθοδος έχει νόημα εάν έχετε δημιουργήσει το αντικείμενο χρησιμοποιώντας ένα σχετικό path αντί για απόλυτο.  
 +  * ''​public String getName()''​ : Επιστρέφει μόνο το όνομα του αρχείου ή καταλόγου του. 
 +  * ''​public boolean isDirectory()''​ : Ελέγχει εάν το συγκεκριμένο αντικείμενο αντιπροσωπεύει ένα directory. 
 +  * ''​public boolean isFile()''​ : Ελέγχει ένα το συγκεκριμένο αντικείμενο είναι απλό αρχείο (όχι directory, , όχι ειδικό αρχείο). 
 +  * ''​public long length()''​ : Επιστρέφει το μήκος του αρχείου. 
 +  * ''​public String[] list()''​ : Επιστρέφει ένα πίνακα από Strings που περιέχει τα ονόματα των περιεχόμενων αρχείων. Η συγκεκριμένη μέθοδος έχει νόημα μόνο εάν το αντικείμενο File αντιπροσωπεύει ένα directory. Διαφορετικά επιστρέφει **null**. 
 +  * ''​public File[] listFiles()''​ : Επιστρέφει ένα πίνακα από Files που περιέχει τα αντικείμενα File για τα περιεχόμενα αρχεία. Η συγκεκριμένη μέθοδος έχει νόημα μόνο εάν το αντικείμενο File αντιπροσωπεύει ένα directory. Διαφορετικά επιστρέφει **null**. 
 +   
 +===== Παραδείγματα ===== 
 + 
 +Με χρήση της κλάσης File δημιουργήστε ένα πρόγραμμα που εκτυπώνει μία λίστα με τα περιεχόμενα των αρχείων του τρέχοντος Directory (ένα σε κάθε γραμμή). 
 +<code java CurrentDirList.java>​ 
 +import java.io.File*;​ 
 + 
 +public class CurrentDirList { 
 +  public static void main(String []args) { 
 +    File currentDir = new File("​."​);​ 
 +    Files files[] = currentDir.listFiles();​ 
 +    for(File f : files) { 
 +      System.out.println(f.getName());​ 
 +    } 
 +  } 
 +
 +</​code>​ 
 + 
 +Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε 
 +  - να λαμβάνει το directory από την γραμμή εντολών 
 +  - να εκτυπώνει μόνο αρχεία με κατάληξη **.doc**. 
 + 
 +<code java CurrentDirList.java>​ 
 +public class CurrentDirList { 
 +  public static void main(String []args) { 
 +    if( args.lengh() == 0 ) { 
 +      System.out.println("​Insufficient number of arguments!"​);​ 
 +      return; 
 +    } 
 +    File currentDir = new File(args[0]);​ 
 +    Files files[] = currentDir.listFiles();​ 
 +    for(File f : files) { 
 +      if( f.isFile() ) { 
 +        System.out.println(f.getName());​ 
 +      } 
 +    } 
 +  } 
 +
 +</​code>​ 
 + 
 + 
 + 
  
java/class_file.txt · Last modified: 2017/02/17 07:58 by gthanos