Ինչպես ավտոմատացնել հիմնական ֆայլերի գործողությունները Java-ի միջոցով


Շատ հավելվածներ պետք է աշխատեն ֆայլերի հետ՝ անկախ նրանից՝ դրանք գրում են, տեղափոխում կամ ջնջում: Իմացեք, թե ինչպես անել այս ամենը և ավելին, օգտագործելով Java-ը:

Կան բազմաթիվ կրկնվող առաջադրանքներ, որոնք դուք կարող եք ժամանակ առ ժամանակ կատարել: Օրինակներից մեկն այն է, եթե դուք պետք է պարբերաբար փոփոխություններ կատարեք ձեր տեղական համակարգչի ֆայլերում: Այս գործողությունները կարող են ներառել ֆայլերի պատճենում, տեղափոխում, ջնջում կամ արխիվացում:

Այս կրկնվող առաջադրանքները ձեռքով ավարտելու փոխարեն, դուք կարող եք ավտոմատացնել դրանք ծրագրի միջոցով: Դուք կարող եք դա անել մեկ սցենարի ֆայլի միջոցով՝ օգտագործելով ծրագրավորման հասանելի բազմաթիվ լեզուներից մեկը, ինչպիսին է Java-ն:

Ինչպես կարգավորել Java հավելվածը

Նախ, համոզվեք, որ տեղադրված եք Oracle-ի Java SE Development Kit-ը: Այնուհետև ստեղծեք Java կոնսոլի պարզ հավելված.

  1. Ստեղծեք ֆայլ ձեր համակարգչի ցանկացած վայրում, որը կոչվում է SimpleScript.java:
  2. Բացեք ֆայլը տեքստային խմբագրիչում կամ IDE-ում:
  3. Ֆայլի վերևում ներմուծեք IOException Class: Սա թույլ կտա ձեզ կարգավորել ֆայլի կամ IO-ի հետ կապված բացառությունները, երբ փորձում եք կատարել որոշակի գործառույթներ, օրինակ՝ ֆայլ պատճենելը:

    import java.io.IOException;
  4. Ստորև ավելացրեք Java-ի հիմնական դասը և հիմնական մեթոդը: Հիմնական մեթոդը կաշխատի, երբ դուք սկսեք հավելվածը: Առայժմ պարզապես տպեք հաղորդագրություն՝ համոզվելու, որ ծրագիրը ճիշտ է աշխատում: Դրանից հետո հիմնական ֆունկցիայի բովանդակությունը կարող եք փոխարինել հետևյալ օրինակներից որևէ մեկով՝ դրանք փորձարկելու համար:

    class SimpleScript { 
        public static void main(String args[]) throws IOException { 
            System.out.println("Simple Console App"); 
        } 
    } 
  5. Սցենարը գործարկելու համար սկսեք օգտագործել հրամանի տող՝ ձեր java ֆայլի գտնվելու վայրը նավարկելու համար: Օրինակ, եթե ձեր ֆայլը պահել եք Desktop-ում, հրամանը կլինի.

    cd Desktop
  6. Պահպանեք ֆայլը և օգտագործեք javac հրամանը՝ այն կազմելու համար: Ամեն անգամ, երբ դուք փոփոխություններ եք կատարում ֆայլում, դուք պետք է նորից կազմեք այն javac-ով:

    javac SimpleScript.java
  7. Գործարկել հավելվածը.

    java SimpleScript

Ինչպես մուտք գործել տեղական ֆայլեր ձեր համակարգչում

Դուք կարող եք օգտագործել File դասը գրացուցակի ֆայլերը ծրագրային մուտք գործելու համար:

  1. Ստեղծեք նոր թղթապանակ, որը կոչվում է New Directory, նույն գրացուցակում, ինչ ձեր java ֆայլը: Ստեղծեք որոշ ֆայլեր դրա ներսում, եթե ցանկանում եք, դրանք կարող են դատարկ տեքստային ֆայլեր լինել:
  2. Ձեր Java հավելվածի վերևում ներմուծեք File դասը: Սա թույլ կտա Ձեզ մուտք գործել որոշակի մեթոդներ և այլ գործառույթներ՝ կապված OS ֆայլերի և գրացուցակների հետ:

    import java.io.File;
  3. Ստեղծեք նոր Ֆայլի օբյեկտ՝ օգտագործելով ձեր նոր թղթապանակի հարաբերական ճանապարհը:

    File directory = new File("NewDirectory");
  4. Օգտագործեք listFiles() ֆունկցիան՝ այդ գրացուցակի ներսում գտնվող բոլոր ֆայլերի ցանկին մուտք գործելու համար:

    File[] listOfFiles = directory.listFiles();
      
    for (File file : listOfFiles) {
        System.out.println(file); 
    }
  5. Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:

Ինչպես պատճենել ֆայլերը մեկ այլ վայրում

Ֆայլերը պատճենելու բազմաթիվ եղանակներ կան: Ֆայլերը պատճենելու սովորական եղանակը (հատկապես Java 7-ից և java.nio.file փաթեթից առաջ) FileInputStream կամ FileOutputStream դասերի օգտագործումն է:

  • FileInputStream դասը թույլ է տալիս բացել մուտքային հոսք՝ ֆայլից բայթ կարդալու համար:
  • FileOutputStream դասը թույլ է տալիս բացել ելքային հոսք՝ ֆայլում բայթեր գրելու համար:

Ֆայլերը պատճենելիս գաղափարն այն է, որ բացվի մուտքային և ելքային հոսք: Օգտագործելով այդ հոսքերը, դուք կկարդաք ֆայլի բայթերը սկզբնաղբյուրում, այնուհետև կգրեք այդ բայթերը նոր վայրում:

Այս օրինակը կօգտագործի ավելի նոր իրականացում ֆայլերը պատճենելու համար՝ օգտագործելով copy() ֆունկցիան java.nio.file փաթեթի Files դասից: Java.nio.file փաթեթն օգտագործելու համար դուք պետք է ունենաք Java 7 կամ ավելի նոր տարբերակ:

  1. Ֆայլի վերևում ներմուծեք File և Path դասերը java.nio.file փաթեթից:

    import java.nio.file.Files;
    import java.nio.file.Paths;
  2. Ավելացրեք նոր ֆայլ, որը կոչվում է FileToCopy.txt նույն գրացուցակում, ինչ ձեր java ֆայլը: main() ֆունկցիայի մեջ հայտարարեք այդ ֆայլի հարաբերական ուղին:

    String copySource = "FileToCopy.txt"; 
  3. Ստեղծեք նոր Թղթապանակ, որը կոչվում է NewFolder՝ ֆայլը պատճենելու համար: Հիմնական() ֆունկցիայի մեջ ավելացրեք դեպի նպատակակետ հարաբերական ուղին:

    String copyDestination = "NewFolder/FileToCopy.txt";
  4. Օգտագործեք 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.");
    }
  5. Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:
  6. Բացեք Նոր թղթապանակը՝ հաստատելու, որ ծրագիրը պատճենել է ձեր ֆայլը:

Ինչպես տեղափոխել ֆայլեր կամ թղթապանակներ

Դուք կարող եք տեղափոխել ֆայլեր կամ թղթապանակներ՝ օգտագործելով move() ֆունկցիան Files դասում, որը նույնպես java.nio.file փաթեթի մի մասն է:

  1. Ստեղծեք նոր թղթապանակ, որը կոչվում է DirectoryToMove ձեր Java ֆայլի նույն պանակում:
  2. Նույն թղթապանակում ստեղծեք երկրորդ թղթապանակ, որը կոչվում է New Directory: Սա այն վայրն է, որտեղ ծրագիրը կտեղափոխի բնօրինակ թղթապանակը:
  3. Ստեղծեք Ֆայլի օբյեկտներ այն գրացուցակի համար, որը ցանկանում եք տեղափոխել, և այն վայրը, որտեղ ցանկանում եք տեղափոխել այն.

    File moveSource = new File("DirectoryToMove");
    File moveDestination = new File("NewDirectory/DirectoryToMove");
  4. Օգտագործեք Files.move() մեթոդը՝ ֆայլը աղբյուրից դեպի նպատակակետ տեղափոխելու համար.

    try {
        Files.move(moveSource.toPath(), moveDestination.toPath());
        System.out.println("Directory moved successfully.");
    } catch (IOException ex) {
        ex.printStackTrace();
    }
  5. Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները:
  6. Բացեք NewDirectory թղթապանակը՝ տեսնելու, որ «DirectoryToMove» պանակը այժմ ներսում է:

Ինչպես ջնջել ֆայլը

Դուք կարող եք օգտագործել delete() մեթոդը File դասից՝ որոշակի ֆայլ ջնջելու համար:

  1. Ստեղծեք FileToDelete.txt անունով ֆայլ: Պահպանեք ֆայլը նույն պանակում, ինչ ձեր Java հավելվածը:
  2. Ստեղծեք նոր 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 դասերը:

  1. Ներմուծեք ZipOutputStream, ZipEntry և FileOutputStream անհրաժեշտ դասերը ֆայլի վերևում:

    import java.util.zip.ZipOutputStream;
    import java.util.zip.ZipEntry;
    import java.io.FileOutputStream;
  2. Ստեղծեք zip ֆայլը և zipEntry օբյեկտների ցանկը, որոնք ներկայացնում են այն տեքստային ֆայլերը, որոնք ցանկանում եք զիփել: Այս օրինակը կստեղծի նոր տեքստային ֆայլեր, բայց դուք կարող եք ավելի ուշ փոփոխել սցենարը՝ ներառելով արդեն գոյություն ունեցող տեքստային ֆայլերը:

    File zipFile = new File("ZippedFile.zip");
    ZipEntry[] zipEntries = new ZipEntry[] {new ZipEntry("zipFile1.txt"),
       new ZipEntry("zipFile2.txt"), new ZipEntry("zipFile3.txt")};
    
  3. Ստեղծեք zip ելքային հոսք՝ տվյալները zip ֆայլում գրելու համար:

    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
  4. Յուրաքանչյուր ֆայլ ավելացրեք 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();
    
  5. Կրկին կազմեք և գործարկեք ծրագիրը՝ օգտագործելով javac և java հրամանները: Դուք կտեսնեք, որ նոր zip թղթապանակը հայտնվում է ձեր ֆայլերի գրացուցակում:

Պարզ առաջադրանքների ավտոմատացում Java-ով

Դուք կարող եք օգտագործել սցենար՝ ֆայլերի կառավարչի կրկնվող առաջադրանքները ծրագրային կերպով ավարտելու համար: Այս առաջադրանքները ներառում են ֆայլեր մուտք գործելը, պատճենելը, տեղափոխելը, ջնջելը և սեղմելը:

Կրկնվող առաջադրանքների ավտոմատացման ևս մեկ եղանակ՝ սկրիպտային ֆայլում համակարգի հրամանների օգտագործումն է: Linux-ում և macOS-ում նման ֆայլերը հայտնի են որպես shell scripts, մինչդեռ Windows-ը դրանք անվանում է խմբաքանակի սցենարներ: