Есть много повторяющихся задач, которые вам, возможно, придется выполнять время от времени. Например, если вам нужно регулярно вносить изменения в файлы на локальном компьютере. Эти действия могут включать копирование, перемещение, удаление или архивирование файлов.
Вместо того, чтобы выполнять эти повторяющиеся задачи вручную, вы можете автоматизировать их с помощью программы. Вы можете сделать это с помощью одного файла сценария, используя один из многих доступных языков программирования, таких как Java.
Как настроить приложение Java
Во-первых, убедитесь, что у вас есть Комплект для разработки Java SE от Oracle установлены. Затем создайте простое консольное приложение Java:
- Создайте файл в любом месте на вашем компьютере с именем SimpleScript.java.
- Откройте файл в текстовом редакторе или IDE.
- В верхней части файла импортируйте класс IOException. Это позволит вам обрабатывать исключения, связанные с файлом или вводом-выводом, при попытке выполнить определенные функции, такие как копирование файла.
импорт java.io. IOException;
- Ниже добавьте основной класс Java и главный метод. Основной метод запускается при запуске приложения. А пока просто напечатайте сообщение, чтобы убедиться, что программа работает правильно. После этого вы можете заменить содержимое функции main любым из следующих примеров, чтобы протестировать их.
учебный классПростой скрипт{
публичныйстатическийпустотаглавный(строковые аргументы [])бросает IOException {
System.out.println("Простое консольное приложение");
}
} - Чтобы запустить скрипт, начните с использования командной строки, чтобы перейти к местоположению вашего java-файла. Например, если вы сохранили файл на рабочем столе, команда будет такой:
CD Рабочий стол
- Сохраните файл и используйте javac команду для его компиляции. Каждый раз, когда вы вносите изменения в файл, вам нужно будет перекомпилировать его с помощью javac.
javac SimpleScript.java
- Запустите приложение:
простой скрипт Java
Как получить доступ к локальным файлам на вашем компьютере
Вы можете использовать класс File для программного доступа к файлам в каталоге.
- Создайте новую папку с именем Новый каталог, в том же каталоге, что и ваш java-файл. Создайте внутри него несколько файлов — если хотите, это могут быть пустые текстовые файлы.
- В верхней части приложения Java импортируйте класс File. Это позволит вам получить доступ к определенным методам и другим функциям, связанным с файлами и каталогами ОС.
импорт java.io. Файл;
- Создайте новый объект File, используя относительный путь к вашей новой папке.
Каталог файлов = новый Файл("Новый Каталог");
- Используйте функцию listFiles() для доступа к списку всех файлов в этом каталоге.
Файл[] listOfFiles = directory.listFiles();
за (Файловый файл: listOfFiles) {
System.out.println (файл);
} - Перекомпилируйте и запустите программу, используя javac а также Ява команды.
Как скопировать файлы в другое место
Существует несколько способов копирования файлов. Обычный способ копирования файлов (особенно до появления 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.файл. файлы;
импорт java.nio.файл. Пути; - Добавьте новый файл с именем FileToCopy.txt в том же каталоге, что и ваш java-файл. В функции main() объявите относительный путь к этому файлу.
Строка copySource = "FileToCopy.txt";
- Создайте новую папку с именем Новая папка, чтобы скопировать файл в. Добавьте относительный путь к месту назначения в функции main().
Строка copyDestination = "NewFolder/FileToCopy.txt";
- Используйте метод copy(), чтобы скопировать файл из источника в место назначения.
пытаться {
Files.copy(Paths.get(copySource), Paths.get(copyDestination));
} ловить(Исключение д) {
System.out.println("Не удалось скопировать файл спецификаций в: " + copyDestination
+ ". Проверять если папка или файл уже существует.");
} - Перекомпилируйте и запустите программу, используя javac а также Ява команды.
- Откройте новую папку, чтобы убедиться, что программа скопировала ваш файл.
Как переместить файлы или папки
Вы можете перемещать файлы или папки с помощью шаг() в классе Files, который также является частью пакета java.nio.file.
- Создайте новую папку с именем DirectoryToMove в той же папке, что и ваш файл Java.
- Создайте вторую папку с именем Новый каталог в той же папке. Сюда программа переместит исходную папку.
- Создайте объекты File для каталога, который вы хотите переместить, и места, в которое вы хотите его переместить:
Файл moveSource = новый Файл("КаталогПереместить");
Файл moveDestination = новый Файл("НовыйКаталог/КаталогПереместить"); - Использовать Файлы.move() метод для перемещения файла из источника в место назначения:
пытаться {
Files.move(moveSource.toPath(), moveDestination.toPath());
System.out.println("Каталог успешно перемещен.");
} ловить (исключение ввода-вывода) {
ex.printStackTrace();
} - Перекомпилируйте и запустите программу, используя javac а также Ява команды.
- Откройте папку NewDirectory, чтобы увидеть, что папка «DirectoryToMove» теперь находится внутри.
Как удалить файл
Вы можете использовать Удалить() метод из класса File для удаления определенного файла.
- Создайте файл с именем FileToDelete.txt. Сохраните файл в той же папке, что и ваше Java-приложение.
- Создайте новый объект File для файла, который вы хотите удалить. Затем используйте его метод delete() для удаления файла. Метод удаления возвращает значение true или false в зависимости от того, было ли удаление успешным.
Файл fileToDelete = новый Файл("FileToDelete.txt");
если (fileToDelete.delete()) {
System.out.println("Файл успешно удален.");
} еще {
System.out.println("Невозможно удалить файл.");
}
Как архивировать файлы
Есть много способов создать zip-архив. содержащий несколько сжатых файлов. В этом примере будет использоваться ZipOutputStream а также ZipEntry классы.
- Импортируйте необходимые классы ZipOutputStream, ZipEntry и FileOutputStream в начало файла.
импорт java.util.zip. ZipOutputStream;
импорт java.util.zip. почтовый индекс;
импорт java.io. ФайлВыходнойПоток; - Создайте zip-файл и список объектов zipEntry, представляющих текстовые файлы, которые вы хотите заархивировать. В этом примере будут созданы новые текстовые файлы, но позже вы можете изменить сценарий, включив в него уже существующие текстовые файлы.
Файл ZIPFile = новый Файл("ZippedFile.zip");
ZipEntry[] zipEntries = новый ZipEntry[] {новый ZipEntry("zipFile1.txt"),
новый ZipEntry("zipFile2.txt"), новый ZipEntry("zipFile3.txt")}; - Создайте выходной поток zip для записи данных в zip-файл.
Выход ZipOutputStream = новый ZipOutputStream(новый FileOutputStream (zipFile));
- Добавьте каждый файл в zip-папку и закройте поток.
за (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = новый Строитель Строки();
sb.append("Содержимое внутри текстового файла");байт[] данные = sb.toString().getBytes();
out.write (данные, 0, данные.длина);
выход.closeEntry();
}выход.закрыть();
- Перекомпилируйте и запустите программу, используя javac а также Ява команды. Вы увидите, что новая zip-папка появится в вашем файловом каталоге.
Автоматизация простых задач с помощью Java
Вы можете использовать сценарий для программного выполнения повторяющихся задач файлового менеджера. Эти задачи включают доступ, копирование, перемещение, удаление и сжатие файлов.
Еще один способ автоматизировать повторяющиеся задачи — использовать системные команды в файле сценария. В Linux и macOS такие файлы называются сценариями оболочки, а в Windows — пакетными сценариями.