java:class_file

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Η κλάση 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 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> import java.io.File; 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.1458315965.txt.gz · Last modified: 2016/03/18 15:46 by gthanos