On palju korduvaid ülesandeid, mida peate võib-olla aeg-ajalt täitma. Üks näide on see, kui peate oma kohalikus arvutis faile regulaarselt muutma. Need toimingud võivad hõlmata failide kopeerimist, teisaldamist, kustutamist või arhiveerimist.

Selle asemel, et neid korduvaid ülesandeid käsitsi täita, saate need programmi abil automatiseerida. Saate seda teha ühe skriptifailiga, kasutades ühte paljudest saadaolevatest programmeerimiskeeltest, näiteks Java.

Kuidas Java rakendust seadistada

Esiteks veenduge, et teil on Oracle'i Java SE arenduskomplekt paigaldatud. Seejärel looge lihtne Java-konsoolirakendus:

  1. Looge oma arvutis suvalises kohas fail nimega SimpleScript.java.
  2. Avage fail tekstiredaktoris või IDE-s.
  3. Importige faili ülaosas IOException Class. See võimaldab teil käsitleda faili või IO-ga seotud erandeid, kui proovite teha teatud funktsioone, nagu faili kopeerimine.
    importida java.io. IOException;
  4. Lisage allpool peamine Java klass ja peamine meetod. Peamine meetod käivitub rakenduse käivitamisel. Praegu printige lihtsalt sõnum, et tagada programmi õige töö. Pärast seda saate põhifunktsiooni sisu testimiseks asendada mis tahes järgmiste näidetega.
    klassSimpleScript{ 
    avalikstaatilinetühinepeamine(String args[])visked IOErand {
    System.out.println("Lihtne konsoolirakendus");
    }
    }
  5. Skripti käivitamiseks kasutage Java-faili asukohta navigeerimiseks käsurida. Näiteks kui olete oma faili töölauale salvestanud, oleks käsk järgmine:
    cd Töölaud
  6. Salvestage fail ja kasutage javac käsk see koostada. Iga kord, kui teete failis muudatusi, peate selle uuesti kompileerima javac.
    javac SimpleScript.java
  7. Käivitage rakendus:
    java SimpleScript

Kuidas pääseda juurde arvutis olevatele kohalikele failidele

Klassi Fail saate kasutada kataloogis olevatele failidele programmiliseks juurdepääsuks.

  1. Looge uus kaust nimega Uus kataloog, samas kataloogis kui teie Java-fail. Looge selle sees mõned failid – soovi korral võivad need olla tühjad tekstifailid.
  2. Importige oma Java-rakenduse ülaosas klass Fail. See võimaldab teil pääseda juurde teatud meetoditele ja muudele OS-i failide ja kataloogidega seotud funktsioonidele.
    importida java.io. Fail;
  3. Looge uus failiobjekt, kasutades uue kausta suhtelist teed.
    Failikataloog = uus Fail ("Uus kataloog");
  4. Kasutage funktsiooni listFiles(), et pääseda juurde kõigi selles kataloogis olevate failide loendile.
    Fail[] listOfFiles = kataloog.loendFiles();

    jaoks (Failifail: listOfFiles) {
    System.out.println (fail);
    }

  5. Kompileerige programm uuesti ja käivitage see kasutades javac ja java käske.

Kuidas faile teise asukohta kopeerida

Failide kopeerimiseks on mitu võimalust. Levinud viis failide kopeerimiseks (eriti enne Java 7 ja paketti java.nio.file) on kasutada FileInputStream või FileOutputStream klasse.

  • The FileInputStream klass võimaldab avada sisendvoo, et lugeda failist baite.
  • The FileOutputStream klass võimaldab avada väljundvoo, et faili baite kirjutada.

Failide kopeerimisel on mõte avada sisend- ja väljundvoog. Neid vooge kasutades loete faili baite lähtekohas ja seejärel kirjutate need baidid uude asukohta.

See näide kasutab failide kopeerimiseks uuemat teostust, kasutades funktsiooni copy() paketi java.nio.file klassist Files. Paketi java.nio.file kasutamiseks peab teil olema installitud Java 7 või uuem versioon.

  1. Importige faili ülaosas faili ja tee klassid paketist java.nio.file.
    importida java.nio.fail. failid;
    importida java.nio.fail. Rajad;
  2. Lisage uus fail nimega FileToCopy.txt samas kataloogis, kus teie java fail. Funktsioonis main() deklareerige selle faili suhteline tee.
    String copySource = "FileToCopy.txt"; 
  3. Looge uus kaust nimega Uus kaust, faili kopeerimiseks. Lisage funktsiooni main() sihtpunkti suhteline tee.
    String copyDestination = "NewFolder/FileToCopy.txt";
  4. Faili allikast sihtkohta kopeerimiseks kasutage meetodit copy().
    proovige {
    Files.copy (Paths.get (copySource), Paths.get (copyDestination));
    } püüda(Erand e) {
    System.out.println("Tehniliste andmete faili ei saanud kopeerida: " + copySihtkoht
    + ". Kontrollima kui kaust või fail on juba olemas.");
    }
  5. Kompileerige programm uuesti ja käivitage see kasutades javac ja java käske.
  6. Avage uus kaust, et kinnitada, et programm on teie faili kopeerinud.

Kuidas teisaldada faile või kaustu

Saate faile või kaustu teisaldada, kasutades liigutama () funktsioon Failid klassis, mis on samuti osa paketist java.nio.file.

  1. Looge uus kaust nimega DirectoryToMove Java-failiga samas kaustas.
  2. Looge teine ​​kaust nimega Uus kataloog samas kaustas. See on koht, kuhu programm teisaldab algse kausta.
  3. Looge failiobjektid kataloogi, mida soovite teisaldada, ja asukohta, kuhu soovite selle teisaldada:
    Fail moveSource = uus File ("Liiguta kataloog");
    Faili teisaldamise sihtkoht = uus File ("NewDirectory/DirectoryToMove");
  4. Kasuta Files.move() meetod faili teisaldamiseks allikast sihtkohta:
    proovige {
    Files.move (moveSource.toPath(), moveDestination.toPath());
    System.out.println("Kataloog teisaldati edukalt.");
    } püüda (IOException ex) {
    ex.printStackTrace();
    }
  5. Kompileerige programm uuesti ja käivitage see kasutades javac ja java käske.
  6. Avage kaust NewDirectory, et näha, kas kaust "DirectoryToMove" on nüüd sees.

Kuidas faili kustutada

Saate kasutada kustuta() meetodi failiklassist konkreetse faili kustutamiseks.

  1. Looge fail nimega FileToDelete.txt. Salvestage fail Java-rakendusega samasse kausta.
  2. Looge kustutatavale failile uus failiobjekt. Seejärel kasutage faili kustutamiseks selle delete() meetodit. Kustutusmeetod tagastab tõese või vale väärtuse, olenevalt sellest, kas kustutamine õnnestus.
    Fail fileToDelete = uus File("FileToDelete.txt");

    kui (fileToDelete.delete()) {
    System.out.println("Fail edukalt kustutatud.");
    } muidu {
    System.out.println("Faili ei saa kustutada.");
    }

Kuidas faile pakkida

ZIP-arhiivi saate luua mitmel viisil mis sisaldab mitut tihendatud faili. See näide kasutab ZipOutputStream ja ZipEntry klassid.

  1. Importige faili ülaosas vajalikud ZipOutputStream, ZipEntry ja FileOutputStream klassid.
    importida java.util.zip. ZipOutputStream;
    importida java.util.zip. ZipEntry;
    importida java.io. FileOutputStream;
  2. Looge ZIP-fail ja zipEntry-objektide loend, mis esindavad tekstifaile, mida soovite pakkida. See näide genereerib uusi tekstifaile, kuid saate skripti hiljem muuta, et lisada juba olemasolevad tekstifailid.
    Fail zipFile = uus Fail("ZippedFile.zip");
    ZipEntry[] zipEntries = uus ZipEntry[] {uus ZipEntry("zipFile1.txt"),
    uus ZipEntry("zipFile2.txt"), uus ZipEntry("zipFile3.txt")};
  3. Andmete ZIP-faili kirjutamiseks looge ZIP-väljundvoog.
    ZipOutputStream välja = uus ZipOutputStream(uus FileOutputStream (zipFile));
  4. Lisage iga fail ZIP-kausta ja sulgege voog.
    jaoks (ZipEntry zipEntry: zipEntries) {
    out.putNextEntry (zipEntry);

    StringBuilder sb = uus StringBuilder();
    sb.append("Sisu tekstifailis");

    bait[] andmed = sb.toString().getBytes();
    out.write (andmed, 0, andmed.pikkus);
    out.closeEntry();
    }

    out.close();

  5. Kompileerige programm uuesti ja käivitage see kasutades javac ja java käske. Näete, et teie failikataloogis kuvatakse uus ZIP-kaust.

Lihtsate ülesannete automatiseerimine Java abil

Saate kasutada skripti korduvate failihalduri ülesannete programmiliseks täitmiseks. Need ülesanded hõlmavad failidele juurdepääsu, kopeerimist, teisaldamist, kustutamist ja pakkimist.

Teine viis korduvate toimingute automatiseerimiseks on kasutada skriptifailis süsteemikäske. Linuxis ja macOS-is nimetatakse selliseid faile shelliskriptideks, samas kui Windows viitab neile pakkskriptideks.