java:class_file

Differences

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

Link to this comparison view

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