Existuje mnoho opakujících se úkolů, které budete možná muset čas od času dokončit. Jedním z příkladů je situace, kdy potřebujete pravidelně provádět změny souborů v místním počítači. Tyto akce mohou zahrnovat kopírování, přesouvání, mazání nebo archivaci souborů.
Místo ručního dokončování těchto opakujících se úkolů je můžete automatizovat pomocí programu. Můžete to udělat pomocí jediného souboru skriptu pomocí jednoho z mnoha dostupných programovacích jazyků, jako je Java.
Jak nastavit aplikaci Java
Nejprve se ujistěte, že máte Oracle Java SE Development Kit nainstalováno. Poté vytvořte jednoduchou konzolovou aplikaci Java:
- Vytvořte soubor kdekoli na vašem počítači s názvem SimpleScript.java.
- Otevřete soubor v textovém editoru nebo IDE.
- V horní části souboru importujte třídu IOException. To vám umožní zpracovat výjimky související se soubory nebo IO při pokusu o provedení určitých funkcí, jako je kopírování souboru.
import java.io. IOException;
- Níže přidejte hlavní třída Java a hlavní metoda. Hlavní metoda se spustí při spuštění aplikace. Prozatím stačí vytisknout zprávu, abyste se ujistili, že program běží správně. Poté můžete obsah hlavní funkce nahradit libovolným z následujících příkladů a otestovat je.
třídaSimpleScript{
veřejnoststatickýprázdnotahlavní(Řetězce[])hází IOException {
System.out.println("Simple Console App");
}
} - Chcete-li skript spustit, začněte pomocí příkazového řádku a přejděte do umístění vašeho souboru java. Pokud jste například uložili svůj soubor na plochu, příkaz by byl:
CD plocha počítače
- Uložte soubor a použijte javac příkaz k jeho kompilaci. Pokaždé, když provedete změny v souboru, budete jej muset znovu zkompilovat s javac.
javac SimpleScript.java
- Spusťte aplikaci:
Java SimpleScript
Jak získat přístup k místním souborům v počítači
Třídu File můžete použít k programovému přístupu k souborům v adresáři.
- Vytvořte novou složku, tzv Nový adresář, ve stejném adresáři jako váš soubor java. Vytvořte v něm nějaké soubory – pokud chcete, mohou to být prázdné textové soubory.
- V horní části vaší aplikace Java importujte třídu File. To vám umožní přístup k určitým metodám a dalším funkcím souvisejícím se soubory a adresáři OS.
import java.io. Soubor;
- Vytvořte nový objekt File pomocí relativní cesty k vaší nové složce.
Adresář souborů = Nový Soubor("Nový adresář");
- Pomocí funkce listFiles() získáte přístup k seznamu všech souborů v tomto adresáři.
Soubor[] listOfFiles = adresář.listFiles();
pro (Soubor souboru: listOfFiles) {
System.out.println (soubor);
} - Znovu zkompilujte a spusťte program pomocí javac a Jáva příkazy.
Jak zkopírovat soubory do jiného umístění
Soubory můžete kopírovat několika způsoby. Běžným způsobem kopírování souborů (zejména před verzí Java 7 a balíčkem java.nio.file) je použití tříd FileInputStream nebo FileOutputStream.
- The FileInputStream class umožňuje otevřít vstupní proud pro čtení bajtů ze souboru.
- The FileOutputStream class umožňuje otevřít výstupní proud pro zápis bajtů do souboru.
Při kopírování souborů je myšlenkou otevřít vstupní a výstupní proud. Pomocí těchto proudů přečtete bajty souboru ve zdrojovém umístění a poté tyto bajty zapíšete do nového umístění.
Tento příklad použije ke kopírování souborů novější implementaci pomocí funkce copy() ze třídy Files balíčku java.nio.file. Chcete-li použít balíček java.nio.file, musíte mít nainstalovanou Javu 7 nebo vyšší.
- V horní části souboru importujte třídy File a Path z balíčku java.nio.file.
import java.nio.file. Soubory;
import java.nio.file. Cesty; - Přidejte nový soubor s názvem FileToCopy.txt ve stejném adresáři jako váš java soubor. Ve funkci main() deklarujte relativní cestu k tomuto souboru.
String copySource = "FileToCopy.txt";
- Vytvořte novou složku s názvem Nová složka, chcete-li soubor zkopírovat. Přidejte relativní cestu k cíli ve funkci main().
String copyDestination = "NewFolder/FileToCopy.txt";
- Pomocí metody copy() zkopírujte soubor z jeho zdroje do cíle.
Snaž se {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} úlovek(Výjimka e) {
System.out.println("Nelze zkopírovat soubor se specifikacemi do: " + copyDestination
+ ". Šek -li složka nebo soubor již existuje.");
} - Znovu zkompilujte a spusťte program pomocí javac a Jáva příkazy.
- Otevřete novou složku a potvrďte, že program zkopíroval váš soubor.
Jak přesouvat soubory nebo složky
Soubory nebo složky můžete přesouvat pomocí přestěhovat se() funkce ve třídě Files, která je také součástí balíčku java.nio.file.
- Vytvořte novou složku s názvem DirectoryToMove ve stejné složce jako váš soubor Java.
- Vytvořte druhou složku s názvem Nový adresář ve stejné složce. To je místo, kam program přesune původní složku.
- Vytvořte objekty File pro adresář, který chcete přesunout, a umístění, kam jej chcete přesunout:
Soubor moveSource = Nový Soubor("DirectoryToMove");
Soubor moveDestination = Nový File("NewDirectory/DirectoryToMove"); - Použijte Files.move() metoda přesunutí souboru ze zdroje do cíle:
Snaž se {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Adresář byl úspěšně přesunut.");
} úlovek (exception IOException) {
ex.printStackTrace();
} - Znovu zkompilujte a spusťte program pomocí javac a Jáva příkazy.
- Otevřete složku NewDirectory, abyste viděli, že složka "DirectoryToMove" je nyní uvnitř.
Jak smazat soubor
Můžete použít vymazat() metodu ze třídy File k odstranění konkrétního souboru.
- Vytvořte soubor s názvem FileToDelete.txt. Uložte soubor do stejné složky jako vaše Java aplikace.
- Vytvořte nový objekt File pro soubor, který chcete odstranit. Poté použijte jeho metodu delete() k odstranění souboru. Metoda delete vrací hodnotu true nebo false v závislosti na tom, zda bylo odstranění úspěšné.
Soubor fileToDelete = Nový Soubor("FileToDelete.txt");
-li (fileToDelete.delete()) {
System.out.println("Soubor úspěšně smazán.");
} jiný {
System.out.println("Soubor nelze smazat.");
}
Jak komprimovat soubory
Existuje mnoho způsobů, jak vytvořit archiv zip obsahující několik komprimovaných souborů. Tento příklad bude používat ZipOutputStream a ZipEntry třídy.
- Importujte potřebné třídy ZipOutputStream, ZipEntry a FileOutputStream v horní části souboru.
import java.util.zip. ZipOutputStream;
import java.util.zip. ZipEntry;
import java.io. FileOutputStream; - Vytvořte soubor zip a seznam objektů zipEntry představujících textové soubory, které chcete zazipovat. Tento příklad vygeneruje nové textové soubory, ale skript můžete později upravit tak, aby zahrnoval textové soubory, které již existují.
Soubor zipFile = Nový Soubor("ZippedFile.zip");
ZipEntry[] zipEntries = Nový ZipEntry[] {Nový ZipEntry("zipFile1.txt"),
Nový ZipEntry("zipFile2.txt"), Nový ZipEntry("zipFile3.txt")}; - Vytvořte výstupní proud zip pro zápis dat do souboru zip.
ZipOutputStream out = Nový ZipOutputStream(Nový FileOutputStream (zipFile));
- Přidejte každý soubor do složky zip a zavřete stream.
pro (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = Nový StringBuilder();
sb.append("Obsah uvnitř textového souboru");byte[] data = sb.toString().getBytes();
out.write (data, 0, data.length);
out.closeEntry();
}out.close();
- Znovu zkompilujte a spusťte program pomocí javac a Jáva příkazy. Uvidíte, že se v adresáři souborů objeví nová složka zip.
Automatizace jednoduchých úloh s Java
K programovému dokončení opakujících se úloh správce souborů můžete použít skript. Tyto úlohy zahrnují přístup, kopírování, přesouvání, mazání a komprimování souborů.
Dalším způsobem, jak automatizovat opakující se úlohy, je použití systémových příkazů v souboru skriptu. V systémech Linux a macOS jsou takové soubory známé jako skripty prostředí, zatímco Windows je označuje jako dávkové skripty.