Ինչպես ավտոմատացնել հիմնական ֆայլերի գործողությունները Java-ի միջոցով
Շատ հավելվածներ պետք է աշխատեն ֆայլերի հետ՝ անկախ նրանից՝ դրանք գրում են, տեղափոխում կամ ջնջում: Իմացեք, թե ինչպես անել այս ամենը և ավելին, օգտագործելով Java-ը:
Կան բազմաթիվ կրկնվող առաջադրանքներ, որոնք դուք կարող եք ժամանակ առ ժամանակ կատարել: Օրինակներից մեկն այն է, եթե դուք պետք է պարբերաբար փոփոխություններ կատարեք ձեր տեղական համակարգչի ֆայլերում: Այս գործողությունները կարող են ներառել ֆայլերի պատճենում, տեղափոխում, ջնջում կամ արխիվացում:
Այս կրկնվող առաջադրանքները ձեռքով ավարտելու փոխարեն, դուք կարող եք ավտոմատացնել դրանք ծրագրի միջոցով: Դուք կարող եք դա անել մեկ սցենարի ֆայլի միջոցով՝ օգտագործելով ծրագրավորման հասանելի բազմաթիվ լեզուներից մեկը, ինչպիսին է Java-ն:
Ինչպես կարգավորել Java հավելվածը
Նախ, համոզվեք, որ տեղադրված եք Oracle-ի Java SE Development Kit-ը: Այնուհետև ստեղծեք Java կոնսոլի պարզ հավելված.
- Ստեղծեք ֆայլ ձեր համակարգչի ցանկացած վայրում, որը կոչվում է SimpleScript.java:
- Բացեք ֆայլը տեքստային խմբագրիչում կամ IDE-ում:
Ֆայլի վերևում ներմուծեք IOException Class: Սա թույլ կտա ձեզ կարգավորել ֆայլի կամ IO-ի հետ կապված բացառությունները, երբ փորձում եք կատարել որոշակի գործառույթներ, օրինակ՝ ֆայլ պատճենելը:
import java.io.IOException;
-
Ստորև ավելացրեք Java-ի հիմնական դասը և հիմնական մեթոդը: Հիմնական մեթոդը կաշխատի, երբ դուք սկսեք հավելվածը: Առայժմ պարզապես տպեք հաղորդագրություն՝ համոզվելու, որ ծրագիրը ճիշտ է աշխատում: Դրանից հետո հիմնական ֆունկցիայի բովանդակությունը կարող եք փոխարինել հետևյալ օրինակներից որևէ մեկով՝ դրանք փորձարկելու համար:
class SimpleScript { public static void main(String args[]) throws IOException { System.out.println("Simple Console App"); } }
Սցենարը գործարկելու համար սկսեք օգտագործել հրամանի տող՝ ձեր java ֆայլի գտնվելու վայրը նավարկելու համար: Օրինակ, եթե ձեր ֆայլը պահել եք Desktop-ում, հրամանը կլինի.
cd Desktop
Պահպանեք ֆայլը և օգտագործեք javac հրամանը՝ այն կազմելու համար: Ամեն անգամ, երբ դուք փոփոխություններ եք կատարում ֆայլում, դուք պետք է նորից կազմեք այն javac-ով:
javac SimpleScript.java
Գործարկել հավելվածը.
java SimpleScript
Ինչպես մուտք գործել տեղական ֆայլեր ձեր համակարգչում
Դուք կարող եք օգտագործել File դասը գրացուցակի ֆայլերը ծրագրային մուտք գործելու համար:
- Ստեղծեք նոր թղթապանակ, որը կոչվում է New Directory, նույն գրացուցակում, ինչ ձեր java ֆայլը: Ստեղծեք որոշ ֆայլեր դրա ներսում, եթե ցանկանում եք, դրանք կարող են դատարկ տեքստային ֆայլեր լինել:
Ձեր Java հավելվածի վերևում ներմուծեք File դասը: Սա թույլ կտա Ձեզ մուտք գործել որոշակի մեթոդներ և այլ գործառույթներ՝ կապված OS ֆայլերի և գրացուցակների հետ:
import java.io.File;
Ստեղծեք նոր Ֆայլի օբյեկտ՝ օգտագործելով ձեր նոր թղթապանակի հարաբերական ճանապարհը:
File directory = new File("NewDirectory");
Օգտագործեք listFiles() ֆունկցիան՝ այդ գրացուցակի ներսում գտնվող բոլոր ֆայլերի ցանկին մուտք գործելու համար:
File[] listOfFiles = directory.listFiles(); for (File file : listOfFiles) { System.out.println(file); }
Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:
Ինչպես պատճենել ֆայլերը մեկ այլ վայրում
Ֆայլերը պատճենելու բազմաթիվ եղանակներ կան: Ֆայլերը պատճենելու սովորական եղանակը (հատկապես Java 7-ից և java.nio.file փաթեթից առաջ) FileInputStream կամ FileOutputStream դասերի օգտագործումն է:
- FileInputStream դասը թույլ է տալիս բացել մուտքային հոսք՝ ֆայլից բայթ կարդալու համար:
- FileOutputStream դասը թույլ է տալիս բացել ելքային հոսք՝ ֆայլում բայթեր գրելու համար:
Ֆայլերը պատճենելիս գաղափարն այն է, որ բացվի մուտքային և ելքային հոսք: Օգտագործելով այդ հոսքերը, դուք կկարդաք ֆայլի բայթերը սկզբնաղբյուրում, այնուհետև կգրեք այդ բայթերը նոր վայրում:
Այս օրինակը կօգտագործի ավելի նոր իրականացում ֆայլերը պատճենելու համար՝ օգտագործելով copy() ֆունկցիան java.nio.file փաթեթի Files դասից: Java.nio.file փաթեթն օգտագործելու համար դուք պետք է ունենաք Java 7 կամ ավելի նոր տարբերակ:
Ֆայլի վերևում ներմուծեք File և Path դասերը java.nio.file փաթեթից:
import java.nio.file.Files; import java.nio.file.Paths;
Ավելացրեք նոր ֆայլ, որը կոչվում է FileToCopy.txt նույն գրացուցակում, ինչ ձեր java ֆայլը: main() ֆունկցիայի մեջ հայտարարեք այդ ֆայլի հարաբերական ուղին:
String copySource = "FileToCopy.txt";
Ստեղծեք նոր Թղթապանակ, որը կոչվում է NewFolder՝ ֆայլը պատճենելու համար: Հիմնական() ֆունկցիայի մեջ ավելացրեք դեպի նպատակակետ հարաբերական ուղին:
String copyDestination = "NewFolder/FileToCopy.txt";
Օգտագործեք copy() մեթոդը՝ ֆայլն իր աղբյուրից մինչև նպատակակետը պատճենելու համար:
try { Files.copy(Paths.get(copySource), Paths.get(copyDestination)); } catch(Exception e) { System.out.println("Could not copy the specs file in: " + copyDestination + " . Check if the folder or file already exists."); }
- Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:
Բացեք Նոր թղթապանակը՝ հաստատելու, որ ծրագիրը պատճենել է ձեր ֆայլը:
Ինչպես տեղափոխել ֆայլեր կամ թղթապանակներ
Դուք կարող եք տեղափոխել ֆայլեր կամ թղթապանակներ՝ օգտագործելով move() ֆունկցիան Files դասում, որը նույնպես java.nio.file փաթեթի մի մասն է:
- Ստեղծեք նոր թղթապանակ, որը կոչվում է DirectoryToMove ձեր Java ֆայլի նույն պանակում:
- Նույն թղթապանակում ստեղծեք երկրորդ թղթապանակ, որը կոչվում է New Directory: Սա այն վայրն է, որտեղ ծրագիրը կտեղափոխի բնօրինակ թղթապանակը:
Ստեղծեք Ֆայլի օբյեկտներ այն գրացուցակի համար, որը ցանկանում եք տեղափոխել, և այն վայրը, որտեղ ցանկանում եք տեղափոխել այն.
File moveSource = new File("DirectoryToMove"); File moveDestination = new File("NewDirectory/DirectoryToMove");
Օգտագործեք Files.move() մեթոդը՝ ֆայլը աղբյուրից դեպի նպատակակետ տեղափոխելու համար.
try { Files.move(moveSource.toPath(), moveDestination.toPath()); System.out.println("Directory moved successfully."); } catch (IOException ex) { ex.printStackTrace(); }
- Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:
- Բացեք NewDirectory թղթապանակը՝ տեսնելու, որ «DirectoryToMove» պանակը այժմ ներսում է:
Ինչպես ջնջել ֆայլը
Դուք կարող եք օգտագործել delete() մեթոդը File դասից՝ որոշակի ֆայլ ջնջելու համար:
- Ստեղծեք FileToDelete.txt անունով ֆայլ: Պահպանեք ֆայլը նույն պանակում, ինչ ձեր Java հավելվածը:
Ստեղծեք նոր File օբյեկտ այն ֆայլի համար, որը ցանկանում եք ջնջել: Այնուհետև օգտագործեք իր delete() մեթոդը՝ ֆայլը ջնջելու համար: Ջնջման մեթոդը վերադարձնում է ճիշտ կամ կեղծ արժեք՝ կախված նրանից, թե ջնջումը հաջող է եղել:
File fileToDelete = new File("FileToDelete.txt"); if (fileToDelete.delete()) { System.out.println("File succesfully deleted."); } else { System.out.println("Unable to delete the file."); }
Ինչպես զիփել ֆայլերը
Կան բազմաթիվ եղանակներ, որոնցով կարող եք ստեղծել մի քանի սեղմված ֆայլեր պարունակող zip արխիվ: Այս օրինակը կօգտագործի ZipOutputStream և ZipEntry դասերը:
Ներմուծեք ZipOutputStream, ZipEntry և FileOutputStream անհրաժեշտ դասերը ֆայլի վերևում:
import java.util.zip.ZipOutputStream; import java.util.zip.ZipEntry; import java.io.FileOutputStream;
Ստեղծեք zip ֆայլը և zipEntry օբյեկտների ցանկը, որոնք ներկայացնում են այն տեքստային ֆայլերը, որոնք ցանկանում եք զիփել: Այս օրինակը կստեղծի նոր տեքստային ֆայլեր, բայց դուք կարող եք ավելի ուշ փոփոխել սցենարը՝ ներառելով արդեն գոյություն ունեցող տեքստային ֆայլերը:
File zipFile = new File("ZippedFile.zip"); ZipEntry[] zipEntries = new ZipEntry[] {new ZipEntry("zipFile1.txt"), new ZipEntry("zipFile2.txt"), new ZipEntry("zipFile3.txt")};
Ստեղծեք zip ելքային հոսք՝ տվյալները zip ֆայլում գրելու համար:
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
Յուրաքանչյուր ֆայլ ավելացրեք zip թղթապանակում և փակեք հոսքը:
for (ZipEntry zipEntry : zipEntries) { out.putNextEntry(zipEntry); StringBuilder sb = new StringBuilder(); sb.append("Content Inside Text File"); byte[] data = sb.toString().getBytes(); out.write(data, 0, data.length); out.closeEntry(); } out.close();
Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները: Դուք կտեսնեք, որ նոր zip թղթապանակը հայտնվում է ձեր ֆայլերի գրացուցակում:
Պարզ առաջադրանքների ավտոմատացում Java-ով
Դուք կարող եք օգտագործել սցենար՝ ֆայլերի կառավարչի կրկնվող առաջադրանքները ծրագրային կերպով ավարտելու համար: Այս առաջադրանքները ներառում են ֆայլեր մուտք գործելը, պատճենելը, տեղափոխելը, ջնջելը և սեղմելը:
Կրկնվող առաջադրանքների ավտոմատացման ևս մեկ եղանակ՝ սկրիպտային ֆայլում համակարգի հրամանների օգտագործումն է: Linux-ում և macOS-ում նման ֆայլերը հայտնի են որպես shell scripts, մինչդեռ Windows-ը դրանք անվանում է խմբաքանակի սցենարներ: