java:class_file

Differences

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

Link to this comparison view

java:class_file [2017/02/07 07:17]
gthanos [Παράδειγμα 2]
java:class_file [2020/03/09 20:31]
Line 1: Line 1:
-====== Η κλάση File ====== 
- 
-Η κλάση [[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 createNewFile()'' : Δημιουργεί ένα νέο κενό αρχείο στο filesystem, εφόσον το αντικείμενο File δεν αντιστοιχεί σε υπαρκτό αρχείο. 
-  * ''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**. 
-  * ''public boolean mkdir()'' : Δημιουργεί ένα νέο κενό directory στο filesystem, εφόσον δεν υπάρχει. Επιστρέφει **true** εάν το directory δημιουργηθεί επιτυχώς, διαφορετικά επιστρέφει **false**. 
-   
-===== Παραδείγματα ===== 
- 
-==== Παράδειγμα 1 ==== 
- 
-Με χρήση της κλάσης [[https://docs.oracle.com/javase/7/docs/api/java/io/File.html|java.io.File]] δημιουργήστε ένα πρόγραμμα που εκτυπώνει μία λίστα με τα περιεχόμενα των αρχείων του τρέχοντος Directory (ένα σε κάθε γραμμή). 
-<code java 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()); 
-    } 
-  } 
-} 
-</code> 
- 
-Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε: 
-  - να λαμβάνει το όνομα του directory από την γραμμή εντολών 
-  - να εκτυπώνει μόνο αρχεία με κατάληξη **.java**. 
- 
-<code 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()); 
-      } 
-    } 
-  } 
-} 
-</code> 
- 
-<WRAP tip 80% center round> 
-Παρατηρήστε ότι είναι απαραίτητη η χρήση της εντολής **import java.io.File;** στην αρχή του αρχείου. 
-</WRAP> 
- 
-==== Παράδειγμα 2 ==== 
- 
-Με χρήση της κλάσης [[https://docs.oracle.com/javase/7/docs/api/java/io/File.html|java.io.File]] δημιουργήστε ένα πρόγραμμα που λαμβάνει το όνομα ενός αρχείου από την γραμμή εντολών και εάν δεν υπάρχει το δημιουργεί στο τρέχον directory. 
- 
-<code java 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(); 
-      } 
-    } 
-  } 
-} 
-</code> 
- 
-<WRAP tip 80% center round> 
-Με βάση το παραπάνω πρόγραμμα δημιουργήστε μία παραλλαγή του που να δημιουργεί ένα directory με το όνομα που δίνετε από την γραμμή εντολών αντί για ένα κανονικό αρχείο. 
-</WRAP> 
- 
-| Προηγούμενο: [[:java:class_path | Η κλάση Path ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:read_from_file | Διαβάζοντας από αρχείο κειμένου  ]] | 
  
java/class_file.txt · Last modified: 2020/03/09 20:31 (external edit)