Sok ismétlődő feladat van, amelyeket időnként el kell végeznie. Ilyen például az, ha rendszeresen módosítania kell a helyi számítógépén lévő fájlokat. Ezek a műveletek magukban foglalhatják a fájlok másolását, áthelyezését, törlését vagy archiválását.
Ahelyett, hogy manuálisan hajtaná végre ezeket az ismétlődő feladatokat, automatizálhatja őket egy program segítségével. Ezt egyetlen szkriptfájllal is megteheti, a számos rendelkezésre álló programozási nyelv egyikével, például a Java-val.
Hogyan állítsuk be a Java alkalmazást
Először is győződjön meg arról, hogy rendelkezik Az Oracle Java SE fejlesztőkészlete telepítve. Ezután hozzon létre egy egyszerű Java konzolalkalmazást:
- Hozzon létre egy fájlt bárhol a számítógépén SimpleScript.java.
- Nyissa meg a fájlt egy szövegszerkesztőben vagy IDE-ben.
- A fájl tetején importálja az IOException Class-t. Ez lehetővé teszi a fájlokkal vagy IO-val kapcsolatos kivételek kezelését, amikor bizonyos funkciókat, például fájlokat másol, végrehajt.
import java.io. IOException;
- Lent add hozzá a fő Java osztály és a fő- módszer. A fő módszer az alkalmazás indításakor fog futni. Egyelőre csak nyomtasson egy üzenetet, hogy megbizonyosodjon arról, hogy a program megfelelően fut. Ezek után a fő függvény tartalmát lecserélheti a következő példák bármelyikére, hogy tesztelje azokat.
osztálySimpleScript{
nyilvánosstatikusüresfő-(String args[])dobások IOException {
System.out.println("Egyszerű konzolalkalmazás");
}
} - A szkript futtatásához először egy parancssor használatával navigáljon a java fájl helyére. Például, ha a fájlt az asztalon tárolta, a parancs a következő lesz:
CD Asztali
- Mentse el a fájlt, és használja a javac parancsot a fordításához. Minden alkalommal, amikor módosítja a fájlt, újra le kell fordítania javac.
javac SimpleScript.java
- Futtassa az alkalmazást:
java SimpleScript
Hogyan lehet elérni a helyi fájlokat a számítógépén
A Fájl osztály segítségével programozottan hozzáférhet egy könyvtárban lévő fájlokhoz.
- Hozzon létre egy új mappát, ún NewDirectory, ugyanabban a könyvtárban, mint a java fájl. Hozzon létre benne néhány fájlt – ha akarja, üres szöveges fájlok is lehetnek.
- A Java-alkalmazás tetején importálja a Fájl osztályt. Ez lehetővé teszi bizonyos módszerek és egyéb funkciók elérését az operációs rendszer fájljaival és könyvtáraival kapcsolatban.
import java.io. Fájl;
- Hozzon létre egy új fájlobjektumot az új mappa relatív elérési útjával.
Fájlkönyvtár = új Fájl("ÚjDirectory");
- A listFiles() függvény segítségével elérheti a könyvtárban található összes fájl listáját.
File[] listOfFiles = directory.listFiles();
számára (Fájlfájl: listOfFiles) {
System.out.println (fájl);
} - Fordítsa újra és futtassa a programot a javac és Jáva parancsokat.
Fájlok másolása másik helyre
A fájlok másolásának többféle módja van. A fájlok másolásának általános módja (különösen a Java 7 és a java.nio.file csomag előtt) a FileInputStream vagy a FileOutputStream osztályok használata.
- Az FileInputStream osztály lehetővé teszi egy bemeneti adatfolyam megnyitását a fájl bájtjainak olvasásához.
- Az FileOutputStream osztály lehetővé teszi egy kimeneti adatfolyam megnyitását, hogy bájtokat írhasson egy fájlba.
Fájlok másolásakor az ötlet az, hogy megnyit egy bemeneti és kimeneti adatfolyamot. Ezen adatfolyamok használatával beolvassa a fájl bájtjait a forrás helyén, majd beírja ezeket a bájtokat az új helyre.
Ez a példa egy újabb megvalósítást fog használni a fájlok másolásához a java.nio.file csomag Files osztályának copy() függvényével. A java.nio.file csomag használatához Java 7 vagy újabb verziónak kell telepítve lennie.
- A fájl tetején importálja a File és Path osztályokat a java.nio.file csomagból.
import java.nio.file. Fájlok;
import java.nio.file. utak; - Adjon hozzá egy új fájlt FileToCopy.txt ugyanabban a könyvtárban, mint a java fájl. A main() függvényben adja meg a fájl relatív elérési útját.
String copySource = "FileToCopy.txt";
- Hozzon létre egy új mappát, a neve Új mappa, a fájl másolásához. Adja hozzá a cél relatív elérési útját a main() függvényben.
String copyDestination = "NewFolder/FileToCopy.txt";
- Használja a copy() metódust a fájl másolásához a forrásból a célhelyre.
próbálja meg {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} fogás(e kivétel) {
System.out.println("Nem sikerült másolni a specifikációs fájlt a következő helyen: " + copyDestination
+ ". Jelölje be ha a mappa vagy fájl már létezik.");
} - Fordítsa újra és futtassa a programot a javac és Jáva parancsokat.
- Nyissa meg az Új mappát, és ellenőrizze, hogy a program átmásolta-e a fájlt.
Fájlok vagy mappák áthelyezése
Fájlokat vagy mappákat a segítségével helyezhet át mozog() függvényt a Files osztályban, amely szintén a java.nio.file csomag része.
- Hozzon létre egy új mappát, melynek neve DirectoryToMove ugyanabban a mappában, mint a Java fájl.
- Hozzon létre egy második mappát, melynek neve NewDirectory ugyanabban a mappában. Ide helyezi át a program az eredeti mappát.
- Hozzon létre fájlobjektumokat az áthelyezni kívánt könyvtárhoz és ahhoz a helyhez, ahová át szeretné helyezni:
Fájl moveSource = új Fájl("DirectoryToMove");
File moveDestination = új Fájl("NewDirectory/DirectoryToMove"); - Használja a Files.move() módszer a fájl áthelyezésére a forrásból a célba:
próbálja meg {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("A könyvtár sikeresen áthelyezve.");
} fogás (IOException ex) {
pl.printStackTrace();
} - Fordítsa újra és futtassa a programot a javac és Jáva parancsokat.
- Nyissa meg a NewDirectory mappát, és nézze meg, hogy a „DirectoryToMove” mappa már benne van.
Hogyan lehet törölni egy fájlt
Használhatja a töröl() metódussal a Fájl osztályból egy adott fájl törléséhez.
- Hozzon létre egy fájlt, melynek neve FileToDelete.txt. Mentse a fájlt ugyanabba a mappába, mint a Java alkalmazás.
- Hozzon létre egy új fájl objektumot a törölni kívánt fájlhoz. Ezután használja a delete() metódust a fájl törléséhez. A törlési módszer igaz vagy hamis értéket ad vissza, attól függően, hogy a törlés sikeres volt-e.
Fájl fileToDelete = új Fájl("FileToDelete.txt");
ha (fileToDelete.delete()) {
System.out.println("A fájl sikeresen törölve.");
} más {
System.out.println("A fájl nem törölhető.");
}
Fájlok tömörítése
Számos módon hozhat létre zip-archívumot több tömörített fájlt tartalmaz. Ez a példa a ZipOutputStream és ZipEntry osztályok.
- Importálja a szükséges ZipOutputStream, ZipEntry és FileOutputStream osztályokat a fájl tetején.
import java.util.zip. ZipOutputStream;
import java.util.zip. ZipEntry;
import java.io. FileOutputStream; - Hozza létre a zip fájlt és a zipEntry objektumok listáját, amelyek a tömöríteni kívánt szövegfájlokat képviselik. Ez a példa új szövegfájlokat hoz létre, de később módosíthatja a szkriptet, hogy belefoglalja a már meglévő szöveges fájlokat.
Fájl zipFile = új Fájl("ZippedFile.zip");
ZipEntry[] zipEntries = új ZipEntry[] {új ZipEntry("zipFile1.txt"),
új ZipEntry("zipFile2.txt"), új ZipEntry("zipFile3.txt")}; - Hozza létre a zip kimeneti adatfolyamot, hogy adatokat írjon a zip fájlba.
ZipOutputStream kimenet = új ZipOutputStream(új FileOutputStream (zipFile));
- Adja hozzá az egyes fájlokat a zip mappához, és zárja be az adatfolyamot.
számára (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = új StringBuilder();
sb.append("Tartalom a szövegfájlban");byte[] data = sb.toString().getBytes();
out.write (adat, 0, adat.hossz);
out.closeEntry();
}out.close();
- Fordítsa újra és futtassa a programot a javac és Jáva parancsokat. Látni fogja, hogy az új zip mappa megjelenik a fájlkönyvtárban.
Egyszerű feladatok automatizálása Java segítségével
Egy parancsfájl segítségével programozottan hajthat végre ismétlődő fájlkezelő feladatokat. Ezek a feladatok közé tartozik a fájlok elérése, másolása, áthelyezése, törlése és tömörítése.
Az ismétlődő feladatok automatizálásának másik módja a rendszerparancsok parancsfájlban való használata. Linuxon és macOS-en az ilyen fájlokat shell szkripteknek nevezik, míg a Windows kötegelt szkripteknek nevezi őket.