Istnieje wiele powtarzających się zadań, które możesz od czasu do czasu wykonać. Jednym z przykładów jest konieczność regularnego wprowadzania zmian w plikach na komputerze lokalnym. Działania te mogą obejmować kopiowanie, przenoszenie, usuwanie lub archiwizowanie plików.
Zamiast wykonywać te powtarzające się zadania ręcznie, możesz je zautomatyzować za pomocą programu. Możesz to zrobić za pomocą jednego pliku skryptu, używając jednego z wielu dostępnych języków programowania, takich jak Java.
Jak skonfigurować aplikację Java
Najpierw upewnij się, że masz Pakiet programistyczny Java SE firmy Oracle zainstalowany. Następnie utwórz prostą aplikację konsolową Java:
- Utwórz plik w dowolnym miejscu na komputerze o nazwie SimpleScript.java.
- Otwórz plik w edytorze tekstu lub IDE.
- W górnej części pliku zaimportuj klasę IOException. Umożliwi to obsługę wyjątków związanych z plikami lub operacjami we/wy podczas próby wykonania pewnych funkcji, takich jak kopiowanie pliku.
import java.io. IOWyjątek;
- Poniżej dodaj główna klasa Java i Główny metoda. Główna metoda zostanie uruchomiona po uruchomieniu aplikacji. Na razie wystarczy wydrukować wiadomość, aby upewnić się, że program działa poprawnie. Następnie możesz zastąpić zawartość funkcji main dowolnym z poniższych przykładów, aby je przetestować.
klasaProsty skrypt{
publicznystatycznypróżniaGłówny(argumenty ciągów[])rzuty IOException {
System.out.println("Prosta aplikacja konsolowa");
}
} - Aby uruchomić skrypt, zacznij od wiersza poleceń, aby przejść do lokalizacji pliku java. Na przykład, jeśli zapisałeś plik na Pulpicie, polecenie będzie wyglądać tak:
płyta CD Pulpit
- Zapisz plik i użyj javac polecenie, aby go skompilować. Za każdym razem, gdy wprowadzasz zmiany w pliku, musisz go ponownie skompilować za pomocą javac.
javac SimpleScript.java
- Uruchom aplikację:
java SimpleScript
Jak uzyskać dostęp do lokalnych plików na komputerze?
Możesz użyć klasy File, aby programowo uzyskać dostęp do plików w katalogu.
- Utwórz nowy folder o nazwie Nowy katalog, w tym samym katalogu, co plik java. Utwórz w nim kilka plików — mogą to być puste pliki tekstowe, jeśli chcesz.
- W górnej części aplikacji Java zaimportuj klasę File. Umożliwi to dostęp do niektórych metod i innych funkcji związanych z plikami i katalogami systemu operacyjnego.
import java.io. Plik;
- Utwórz nowy obiekt File, korzystając ze ścieżki względnej do nowego folderu.
Katalog plików = Nowy Plik("Nowy Katalog");
- Użyj funkcji listFiles(), aby uzyskać dostęp do listy wszystkich plików w tym katalogu.
Plik[] listOfFiles = katalog.listFiles();
dla (Plik: listOfFiles) {
System.out.println (plik);
} - Ponownie skompiluj i uruchom program za pomocą javac oraz Jawa polecenia.
Jak skopiować pliki do innej lokalizacji?
Istnieje wiele sposobów kopiowania plików. Typowym sposobem kopiowania plików (zwłaszcza przed Java 7 i pakietem java.nio.file) jest użycie klas FileInputStream lub FileOutputStream.
- The FileInputStream class pozwala na otwarcie strumienia wejściowego w celu odczytania bajtów z pliku.
- The FileOutputStream class pozwala na otwarcie strumienia wyjściowego w celu zapisania bajtów do pliku.
Podczas kopiowania plików chodzi o otwarcie strumienia wejściowego i wyjściowego. Korzystając z tych strumieni, odczytasz bajty pliku w lokalizacji źródłowej, a następnie zapiszesz te bajty w nowej lokalizacji.
W tym przykładzie do kopiowania plików zostanie użyta nowsza implementacja za pomocą funkcji copy() z klasy Files pakietu java.nio.file. Aby korzystać z pakietu java.nio.file, musisz mieć zainstalowaną wersję Java 7 lub nowszą.
- U góry pliku zaimportuj klasy File i Path z pakietu java.nio.file.
import java.nio.plik. Akta;
import java.nio.plik. Ścieżki; - Dodaj nowy plik o nazwie FileToCopy.txt w tym samym katalogu, co plik java. W funkcji main() zadeklaruj względną ścieżkę do tego pliku.
String copySource = "FileToCopy.txt";
- Utwórz nowy folder o nazwie Nowy folder, aby skopiować plik. Dodaj ścieżkę względną do miejsca docelowego w funkcji main().
String copyDestination = "NewFolder/FileToCopy.txt";
- Użyj metody copy(), aby skopiować plik ze źródła do miejsca docelowego.
próbować {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} złapać(Wyjątek e) {
System.out.println("Nie można skopiować pliku specyfikacji w: " + copyDestination
+ ". Sprawdzać jeśli folder lub plik już istnieje.");
} - Ponownie skompiluj i uruchom program za pomocą javac oraz Jawa polecenia.
- Otwórz nowy folder, aby potwierdzić, że program skopiował plik.
Jak przenosić pliki lub foldery
Możesz przenosić pliki lub foldery za pomocą ruszaj się() funkcji w klasie Files, która jest również częścią pakietu java.nio.file.
- Utwórz nowy folder o nazwie Katalog do przeniesienia w tym samym folderze, co plik Java.
- Utwórz drugi folder o nazwie Nowy katalog w tym samym folderze. W tym miejscu program przeniesie oryginalny folder.
- Utwórz obiekty File dla katalogu, który chcesz przenieść, oraz lokalizację, do której chcesz go przenieść:
Plik przenoszeniaSource = Nowy File("KatalogDoPrzeniesienia");
Przeniesienie plikuDestination = Nowy File("NowyKatalog/KatalogDoPrzeniesienia"); - Użyj Pliki.przenieś() metoda przeniesienia pliku ze źródła do miejsca docelowego:
próbować {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Katalog przeniesiony pomyślnie.");
} złapać (IOWyjątek ex) {
np.printStackTrace();
} - Ponownie skompiluj i uruchom program za pomocą javac oraz Jawa polecenia.
- Otwórz folder NewDirectory, aby zobaczyć, że folder „DirectoryToMove” jest teraz w środku.
Jak usunąć plik
Możesz użyć kasować() metodę z klasy File, aby usunąć określony plik.
- Utwórz plik o nazwie FileToDelete.txt. Zapisz plik w tym samym folderze, co aplikacja Java.
- Utwórz nowy obiekt File dla pliku, który chcesz usunąć. Następnie użyj jego metody delete(), aby usunąć plik. Metoda delete zwraca wartość true lub false, w zależności od tego, czy usunięcie powiodło się.
Plik fileToDelete = Nowy File("FileToDelete.txt");
jeśli (fileToDelete.delete()) {
System.out.println("Plik pomyślnie usunięty.");
} w przeciwnym razie {
System.out.println("Nie można usunąć pliku.");
}
Jak spakować pliki
Istnieje wiele sposobów tworzenia archiwum zip zawierający kilka skompresowanych plików. Ten przykład użyje ZipOutputStream oraz Wpis pocztowy zajęcia.
- Zaimportuj niezbędne klasy ZipOutputStream, ZipEntry i FileOutputStream w górnej części pliku.
import java.util.zip. ZipOutputStream;
import java.util.zip. Kod pocztowy;
import java.io. FileOutputStream; - Utwórz plik zip i listę obiektów zipEntry reprezentujących pliki tekstowe, które chcesz spakować. Ten przykład wygeneruje nowe pliki tekstowe, ale możesz później zmodyfikować skrypt, aby uwzględnić już istniejące pliki tekstowe.
Plik zipFile = Nowy File("ZippedFile.zip");
zipEntry[] zipEntries = Nowy WpisPocztowy[] {Nowy ZipEntry("zipFile1.txt"),
Nowy ZipEntry("zipFile2.txt"), Nowy ZipEntry("zipFile3.txt")}; - Utwórz strumień wyjściowy zip, aby zapisać dane w pliku zip.
ZipOutputStream out = Nowy ZipOutputStream(Nowy FileOutputStream (zipFile));
- Dodaj każdy plik do folderu zip i zamknij strumień.
dla (ZipEntry zipEntry: zipEntry) {
out.putNextEntry (zipEntry);StringBuilder sb = Nowy StringBuilder();
sb.append("Zawartość wewnątrz pliku tekstowego");bajt[] dane = sb.toString().getBytes();
out.write (dane, 0, data.długość);
out.closeEntry();
}out.zamknij();
- Ponownie skompiluj i uruchom program za pomocą javac oraz Jawa polecenia. Zobaczysz nowy folder zip pojawi się w katalogu plików.
Automatyzacja prostych zadań za pomocą Java
Za pomocą skryptu można programowo wykonywać powtarzające się zadania menedżera plików. Zadania te obejmują uzyskiwanie dostępu, kopiowanie, przenoszenie, usuwanie i zipowanie plików.
Innym sposobem zautomatyzowania powtarzających się zadań jest użycie poleceń systemowych w pliku skryptu. W systemach Linux i macOS takie pliki są nazywane skryptami powłoki, podczas gdy system Windows określa je jako skrypty wsadowe.