Има много повтарящи се задачи, които може да се наложи да изпълнявате от време на време. Един пример е, ако трябва редовно да правите промени във файловете на вашия локален компютър. Тези действия могат да включват копиране, преместване, изтриване или архивиране на файлове.
Вместо да изпълнявате тези повтарящи се задачи ръчно, можете да ги автоматизирате с помощта на програма. Можете да направите това с един файл скрипт, като използвате един от многото налични езици за програмиране, като Java.
Как да настроите приложението Java
Първо се уверете, че имате Комплектът за разработка на Java SE на Oracle инсталирани. След това създайте просто конзолно приложение на Java:
- Създайте файл навсякъде на вашия компютър, наречен SimpleScript.java.
- Отворете файла в текстов редактор или IDE.
- В горната част на файла импортирайте класа IOException. Това ще ви позволи да обработвате изключения, свързани с файлове или IO, когато се опитвате да изпълните определени функции, като копиране на файл.
внос java.io. IOException;
- По-долу добавете основният клас Java и на главен метод. Основният метод ще се стартира, когато стартирате приложението. Засега просто отпечатайте съобщение, за да сте сигурни, че програмата работи правилно. След това можете да замените съдържанието на основната функция с някой от следните примери, за да ги тествате.
класSimpleScript{
общественостатиченнищоженглавен(Аргументи на низ[])хвърля IOException {
System.out.println("Просто конзолно приложение");
}
} - За да стартирате скрипта, започнете с помощта на команден ред, за да отидете до местоположението на вашия java файл. Например, ако сте съхранили своя файл на работния плот, командата ще бъде:
cd работен плот
- Запазете файла и използвайте javac команда за компилирането му. Всеки път, когато правите промени във файла, ще трябва да го компилирате отново с javac.
javac SimpleScript.java
- Стартирайте приложението:
java SimpleScript
Как да получите достъп до локални файлове във вашия компютър
Можете да използвате класа File за програмен достъп до файлове в директория.
- Създайте нова папка, наречена Нова директория, в същата директория като вашия java файл. Създайте някои файлове в него - те могат да бъдат празни текстови файлове, ако искате.
- В горната част на вашето Java приложение импортирайте класа File. Това ще ви позволи да получите достъп до определени методи и други функции, свързани с OS файлове и директории.
внос java.io. Файл;
- Създайте нов обект File, като използвате относителния път към новата папка.
Файлова директория = нов Файл("Нова директория");
- Използвайте функцията listFiles() за достъп до списък с всички файлове в тази директория.
Файл [] listOfFiles = directory.listFiles();
за (Файлов файл: listOfFiles) {
System.out.println (файл);
} - Прекомпилирайте и стартирайте програмата с помощта на javac и java команди.
Как да копирате файлове на друго място
Има няколко начина, по които можете да копирате файлове. Често срещан начин за копиране на файлове (особено преди Java 7 и пакета java.nio.file) е използването на класовете FileInputStream или FileOutputStream.
- В FileInputStream class ви позволява да отворите входен поток за четене на байтове от файл.
- В FileOutputStream class ви позволява да отворите изходен поток, за да запишете байтове във файл.
Когато копирате файлове, идеята е да отворите входен и изходен поток. Използвайки тези потоци, вие ще прочетете байтовете на файла в изходното местоположение и след това ще запишете тези байтове на новото място.
Този пример ще използва по-нова реализация за копиране на файлове, като се използва функцията 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 и java команди.
- Отворете новата папка, за да потвърдите, че програмата е копирала вашия файл.
Как да премествате файлове или папки
Можете да премествате файлове или папки с помощта на ход() функция в класа Files, който също е част от пакета java.nio.file.
- Създайте нова папка, наречена DirectoryToMove в същата папка като вашия Java файл.
- Създайте втора папка, наречена Нова директория в същата папка. Това е мястото, където програмата ще премести оригиналната папка.
- Създайте файлови обекти за директорията, която искате да преместите, и местоположението, в което искате да го преместите:
Файл moveSource = нов File("DirectoryToMove");
Файл moveDestination = нов File("NewDirectory/DirectoryToMove"); - Използвай Files.move() метод за преместване на файла от източника към местоназначението:
опитвам {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Директорията е преместена успешно.");
} улов (IOException ex) {
ex.printStackTrace();
} - Прекомпилирайте и стартирайте програмата с помощта на javac и java команди.
- Отворете папката NewDirectory, за да видите, че папката "DirectoryToMove" вече е вътре.
Как да изтриете файл
Можете да използвате Изтрий() метод от класа File, за да изтриете конкретен файл.
- Създайте файл, наречен FileToDelete.txt. Запазете файла в същата папка като вашето Java приложение.
- Създайте нов обект File за файла, който искате да изтриете. След това използвайте неговия метод delete(), за да изтриете файла. Методът delete връща стойност true или false, в зависимост от това дали изтриването е било успешно.
Файл fileToDelete = нов File("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[] zipEntry = нов 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 и java команди. Ще видите новата папка zip да се появи във вашата файлова директория.
Автоматизиране на прости задачи с Java
Можете да използвате скрипт, за да изпълнявате програмно повтарящи се задачи на файловия мениджър. Тези задачи включват достъп, копиране, преместване, изтриване и архивиране на файлове.
Друг начин да автоматизирате повтарящи се задачи е като използвате системни команди в скриптов файл. В Linux и macOS такива файлове са известни като шел скриптове, докато Windows ги нарича пакетни скриптове.