This shows you the differences between two versions of the page.
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:47] 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("."); | ||
+ | File files[] = currentDir.listFiles(); | ||
+ | for(File f : files) { | ||
+ | System.out.println(f.getName()); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε | ||
+ | - να λαμβάνει το directory από την γραμμή εντολών | ||
+ | - να εκτυπώνει μόνο αρχεία με κατάληξη **.doc**. | ||
+ | |||
+ | <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() ) { | ||
+ | System.out.println(f.getName()); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||