This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:class_file [2016/03/18 15:14] gthanos |
java:class_file [2016/03/18 20:49] gthanos |
||
---|---|---|---|
Line 13: | Line 13: | ||
</code> | </code> | ||
- | Αν θέλετε να δημιουργήσετε ένα αντικείμενο 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"); | ||
</code> | </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**. | ||
+ | | ||
+ | ===== Παραδείγματα ===== | ||
+ | |||
+ | ==== Παράδειγμα 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> | ||
+ | </code> | ||
+ | |||
+ | |||