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:46] gthanos |
java:class_file [2016/03/18 21:24] gthanos |
||
---|---|---|---|
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; | import java.io.File; | ||
Line 44: | Line 48: | ||
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 52: | Line 56: | ||
</code> | </code> | ||
- | Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε | + | Στη συνέχεια εξελίσσουμε το πρόγραμμα ώστε: |
- | - να λαμβάνει το directory από την γραμμή εντολών | + | - να λαμβάνει το όνομα του directory από την γραμμή εντολών |
- | - να εκτυπώνει μόνο αρχεία με κατάληξη **.doc**. | + | - να εκτυπώνει μόνο αρχεία με κατάληξη **.java**. |
<code java CurrentDirList.java> | <code java CurrentDirList.java> | ||
Line 61: | Line 65: | ||
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 76: | 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> | ||