Υπάρχουν πολλές επαναλαμβανόμενες εργασίες που μπορεί να χρειαστεί να ολοκληρώσετε από καιρό σε καιρό. Ένα παράδειγμα είναι εάν χρειάζεται να κάνετε τακτικά αλλαγές σε αρχεία στον τοπικό σας υπολογιστή. Αυτές οι ενέργειες μπορεί να περιλαμβάνουν αντιγραφή, μετακίνηση, διαγραφή ή αρχειοθέτηση αρχείων.
Αντί να ολοκληρώσετε αυτές τις επαναλαμβανόμενες εργασίες με μη αυτόματο τρόπο, μπορείτε να τις αυτοματοποιήσετε χρησιμοποιώντας ένα πρόγραμμα. Μπορείτε να το κάνετε αυτό με ένα μόνο αρχείο σεναρίου, χρησιμοποιώντας μία από τις πολλές διαθέσιμες γλώσσες προγραμματισμού, όπως η Java.
Πώς να ρυθμίσετε την εφαρμογή Java
Πρώτα, βεβαιωθείτε ότι έχετε Το κιτ ανάπτυξης Java SE της Oracle εγκατασταθεί. Στη συνέχεια, δημιουργήστε μια απλή εφαρμογή κονσόλας Java:
- Δημιουργήστε ένα αρχείο οπουδήποτε στον υπολογιστή σας ονομάζεται SimpleScript.java.
- Ανοίξτε το αρχείο σε πρόγραμμα επεξεργασίας κειμένου ή IDE.
- Στο επάνω μέρος του αρχείου, εισαγάγετε την κλάση IOException. Αυτό θα σας επιτρέψει να χειριστείτε εξαιρέσεις που σχετίζονται με αρχεία ή IO όταν προσπαθείτε να κάνετε ορισμένες λειτουργίες, όπως η αντιγραφή ενός αρχείου.
εισαγωγή java.io. IOException;
- Παρακάτω, προσθέστε την κύρια τάξη Java και το κύριος μέθοδος. Η κύρια μέθοδος θα εκτελεστεί όταν ξεκινήσετε την εφαρμογή. Προς το παρόν, απλώς εκτυπώστε ένα μήνυμα για να βεβαιωθείτε ότι το πρόγραμμα εκτελείται σωστά. Μετά από αυτό, μπορείτε να αντικαταστήσετε τα περιεχόμενα της κύριας συνάρτησης με οποιοδήποτε από τα ακόλουθα παραδείγματα για να τα δοκιμάσετε.
τάξηSimpleScript{
δημόσιοστατικόςκενόςκύριος(Args string[])ρίχνει IOException {
System.out.println("Απλή εφαρμογή κονσόλας");
}
} - Για να εκτελέσετε το σενάριο, ξεκινήστε χρησιμοποιώντας μια γραμμή εντολών για να πλοηγηθείτε στη θέση του αρχείου σας java. Για παράδειγμα, εάν έχετε αποθηκεύσει το αρχείο σας στην επιφάνεια εργασίας, η εντολή θα είναι:
CD Επιφάνεια εργασίας
- Αποθηκεύστε το αρχείο και χρησιμοποιήστε το javac εντολή για μεταγλώττιση. Κάθε φορά που κάνετε αλλαγές στο αρχείο, θα πρέπει να το μεταγλωττίσετε ξανά javac.
javac SimpleScript.java
- Εκτελέστε την εφαρμογή:
java SimpleScript
Πώς να αποκτήσετε πρόσβαση σε τοπικά αρχεία στον υπολογιστή σας
Μπορείτε να χρησιμοποιήσετε την κλάση Αρχείο για να αποκτήσετε πρόσβαση μέσω προγραμματισμού σε αρχεία σε έναν κατάλογο.
- Δημιουργήστε έναν νέο φάκελο, που ονομάζεται NewDirectory, στον ίδιο κατάλογο με το αρχείο java. Δημιουργήστε μερικά αρχεία μέσα σε αυτό—μπορούν να είναι κενά αρχεία κειμένου, αν θέλετε.
- Στο επάνω μέρος της εφαρμογής Java, εισαγάγετε την κλάση Αρχείο. Αυτό θα σας επιτρέψει να αποκτήσετε πρόσβαση σε ορισμένες μεθόδους και άλλες λειτουργίες που σχετίζονται με αρχεία και καταλόγους λειτουργικού συστήματος.
εισαγωγή java.io. Αρχείο;
- Δημιουργήστε ένα νέο αντικείμενο Αρχείο χρησιμοποιώντας τη σχετική διαδρομή προς τον νέο σας φάκελο.
Κατάλογος αρχείων = νέος Αρχείο ("NewDirectory");
- Χρησιμοποιήστε τη συνάρτηση listFiles() για να αποκτήσετε πρόσβαση σε μια λίστα με όλα τα αρχεία μέσα σε αυτόν τον κατάλογο.
Αρχείο[] listOfFiles = directory.listFiles();
Για (Αρχείο: listOfFiles) {
System.out.println (αρχείο);
} - Κάντε εκ νέου μεταγλώττιση και εκτελέστε το πρόγραμμα χρησιμοποιώντας το javac και Ιάβα εντολές.
Πώς να αντιγράψετε αρχεία σε άλλη τοποθεσία
Υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να αντιγράψετε αρχεία. Ένας συνηθισμένος τρόπος αντιγραφής αρχείων (ειδικά πριν από την Java 7 και το πακέτο java.nio.file), είναι η χρήση των κλάσεων FileInputStream ή FileOutputStream.
- ο FileInputStream class σάς επιτρέπει να ανοίξετε μια ροή εισόδου για να διαβάσετε byte από ένα αρχείο.
- ο FileOutputStream class σάς επιτρέπει να ανοίξετε μια ροή εξόδου για να γράψετε byte σε ένα αρχείο.
Κατά την αντιγραφή αρχείων, η ιδέα είναι να ανοίξετε μια ροή εισόδου και εξόδου. Χρησιμοποιώντας αυτές τις ροές, θα διαβάσετε τα byte του αρχείου στη θέση προέλευσης και, στη συνέχεια, θα γράψετε αυτά τα byte στη νέα θέση.
Αυτό το παράδειγμα θα χρησιμοποιήσει μια νεότερη υλοποίηση για την αντιγραφή αρχείων, χρησιμοποιώντας τη συνάρτηση copy() από την κλάση Files του πακέτου java.nio.file. Για να χρησιμοποιήσετε το πακέτο java.nio.file, πρέπει να έχετε εγκαταστήσει Java 7 ή νεότερη έκδοση.
- Στο επάνω μέρος του αρχείου, εισαγάγετε τις κλάσεις File και Path από το πακέτο java.nio.file.
εισαγωγή java.nio.file. Αρχεία?
εισαγωγή java.nio.file. Μονοπάτια; - Προσθέστε ένα νέο αρχείο που ονομάζεται FileToCopy.txt στον ίδιο κατάλογο με το αρχείο java. Στη συνάρτηση main(), δηλώστε τη σχετική διαδρομή σε αυτό το αρχείο.
String copySource = "FileToCopy.txt";
- Δημιουργήστε έναν νέο φάκελο, που ονομάζεται Νέος φάκελος, για να αντιγράψετε το αρχείο. Προσθέστε τη σχετική διαδρομή προς τον προορισμό στη συνάρτηση main().
String copyDestination = "NewFolder/FileToCopy.txt";
- Χρησιμοποιήστε τη μέθοδο copy() για να αντιγράψετε το αρχείο από την πηγή του στον προορισμό.
προσπαθήστε {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} σύλληψη(Εξαίρεση ε) {
System.out.println("Δεν ήταν δυνατή η αντιγραφή του αρχείου προδιαγραφών στο: " + copyDestination
+ ". Ελεγχος αν ο φάκελος ή το αρχείο υπάρχει ήδη.");
} - Κάντε εκ νέου μεταγλώττιση και εκτελέστε το πρόγραμμα χρησιμοποιώντας το javac και Ιάβα εντολές.
- Ανοίξτε τον Νέο φάκελο για να επιβεβαιώσετε ότι το πρόγραμμα έχει αντιγράψει το αρχείο σας.
Πώς να μετακινήσετε αρχεία ή φακέλους
Μπορείτε να μετακινήσετε αρχεία ή φακέλους χρησιμοποιώντας το κίνηση() λειτουργία στην κλάση Files, η οποία είναι επίσης μέρος του πακέτου java.nio.file.
- Δημιουργήστε έναν νέο φάκελο που ονομάζεται DirectoryToMove στον ίδιο φάκελο με το αρχείο Java.
- Δημιουργήστε έναν δεύτερο φάκελο που ονομάζεται NewDirectory στον ίδιο φάκελο. Εδώ θα μετακινήσει το πρόγραμμα τον αρχικό φάκελο.
- Δημιουργήστε αντικείμενα αρχείου για τον κατάλογο που θέλετε να μετακινήσετε και τη θέση στην οποία θέλετε να μετακινήσετε:
Αρχείο moveSource = νέος Αρχείο ("DirectoryToMove");
Αρχείο moveDestination = νέος Αρχείο ("NewDirectory/DirectoryToMove"); - Χρησιμοποιήστε το Files.move() μέθοδος για να μετακινήσετε το αρχείο από την πηγή στον προορισμό:
προσπαθήστε {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Ο κατάλογος μετακινήθηκε με επιτυχία.");
} σύλληψη (IOException ex) {
π.χ.printStackTrace();
} - Κάντε εκ νέου μεταγλώττιση και εκτελέστε το πρόγραμμα χρησιμοποιώντας το javac και Ιάβα εντολές.
- Ανοίξτε το φάκελο NewDirectory για να δείτε ότι ο φάκελος "DirectoryToMove" βρίσκεται τώρα μέσα.
Πώς να διαγράψετε ένα αρχείο
Μπορείτε να χρησιμοποιήσετε το διαγράφω() μέθοδο από την κλάση Αρχείο για να διαγράψετε ένα συγκεκριμένο αρχείο.
- Δημιουργήστε ένα αρχείο που ονομάζεται FileToDelete.txt. Αποθηκεύστε το αρχείο στον ίδιο φάκελο με την εφαρμογή Java.
- Δημιουργήστε ένα νέο αντικείμενο αρχείου για το αρχείο που θέλετε να διαγράψετε. Στη συνέχεια, χρησιμοποιήστε τη μέθοδο delete() για να διαγράψετε το αρχείο. Η μέθοδος διαγραφής επιστρέφει μια τιμή true ή false, ανάλογα με το αν η διαγραφή ήταν επιτυχής.
Αρχείο αρχείουToDelete = νέος Αρχείο ("FileToDelete.txt");
αν (fileToDelete.delete()) {
System.out.println("Το αρχείο διαγράφηκε με επιτυχία.");
} αλλού {
System.out.println("Δεν είναι δυνατή η διαγραφή του αρχείου.");
}
Τρόπος συμπίεσης αρχείων
Υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να δημιουργήσετε ένα αρχείο zip που περιέχει πολλά συμπιεσμένα αρχεία. Αυτό το παράδειγμα θα χρησιμοποιήσει το ZipOutputStream και ZipEntry τάξεις.
- Εισαγάγετε τις απαραίτητες κλάσεις ZipOutputStream, ZipEntry και FileOutputStream στο επάνω μέρος του αρχείου.
εισαγωγή java.util.zip. ZipOutputStream;
εισαγωγή java.util.zip. ZipEntry;
εισαγωγή java.io. FileOutputStream; - Δημιουργήστε το αρχείο zip και μια λίστα με αντικείμενα zipEntry που αντιπροσωπεύουν τα αρχεία κειμένου που θέλετε να συμπιεστείτε. Αυτό το παράδειγμα θα δημιουργήσει νέα αρχεία κειμένου, αλλά μπορείτε να τροποποιήσετε το σενάριο αργότερα για να συμπεριλάβετε αρχεία κειμένου που υπάρχουν ήδη.
Αρχείο zipFile = νέος Αρχείο ("ZippedFile.zip");
ZipEntry[] zipEntries = νέος ZipEntry[] {νέος ZipEntry ("zipFile1.txt"),
νέος ZipEntry ("zipFile2.txt"), νέος ZipEntry("zipFile3.txt")}; - Δημιουργήστε τη ροή εξόδου zip για να γράψετε δεδομένα στο αρχείο zip.
ZipOutputStream out = νέος ZipOutputStream(νέος FileOutputStream (zipFile));
- Προσθέστε κάθε αρχείο στον φάκελο zip και κλείστε τη ροή.
Για (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = νέος StringBuilder();
sb.append("Περιεχόμενο μέσα στο αρχείο κειμένου");ψηφιόλεξη[] δεδομένα = sb.toString().getBytes();
out.write (δεδομένα, 0, data.length);
out.closeEntry();
}out.close();
- Κάντε εκ νέου μεταγλώττιση και εκτελέστε το πρόγραμμα χρησιμοποιώντας το javac και Ιάβα εντολές. Θα δείτε τον νέο φάκελο zip να εμφανίζεται στον κατάλογο αρχείων σας.
Αυτοματοποίηση απλών εργασιών με Java
Μπορείτε να χρησιμοποιήσετε ένα σενάριο για να ολοκληρώσετε επαναλαμβανόμενες εργασίες διαχείρισης αρχείων μέσω προγραμματισμού. Αυτές οι εργασίες περιλαμβάνουν πρόσβαση, αντιγραφή, μετακίνηση, διαγραφή και συμπίεση αρχείων.
Ένας άλλος τρόπος με τον οποίο μπορείτε να αυτοματοποιήσετε επαναλαμβανόμενες εργασίες είναι χρησιμοποιώντας εντολές συστήματος σε ένα αρχείο σεναρίου. Σε Linux και macOS, τέτοια αρχεία είναι γνωστά ως σενάρια κελύφους, ενώ τα Windows τα αναφέρουν ως σενάρια δέσμης.