Det er mange repeterende oppgaver som du kanskje må fullføre fra tid til annen. Et eksempel er hvis du regelmessig trenger å gjøre endringer i filer på din lokale datamaskin. Disse handlingene kan inkludere kopiering, flytting, sletting eller arkivering av filer.
I stedet for å fullføre disse repeterende oppgavene manuelt, kan du automatisere dem ved hjelp av et program. Du kan gjøre dette med en enkelt skriptfil, ved å bruke et av de mange tilgjengelige programmeringsspråkene, for eksempel Java.
Hvordan sette opp Java-applikasjonen
Først må du sørge for at du har Oracles Java SE Development Kit installert. Lag deretter en enkel Java-konsollapplikasjon:
- Lag en fil hvor som helst på datamaskinen din som heter SimpleScript.java.
- Åpne filen i et tekstredigeringsprogram eller IDE.
- Importer IOException-klassen øverst i filen. Dette vil tillate deg å håndtere fil- eller IO-relaterte unntak når du prøver å utføre visse funksjoner, som å kopiere en fil.
import java.io. IOException;
- Nedenfor, legg til
den viktigste Java-klassen og hoved- metode. Hovedmetoden kjøres når du starter programmet. For nå er det bare å skrive ut en melding for å sikre at programmet kjører riktig. Etter dette kan du erstatte innholdet i hovedfunksjonen med et av de følgende eksemplene for å teste dem.
klasseSimpleScript{
offentligstatisktomromhoved-(String args[])kaster IOException {
System.out.println("Simple Console App");
}
} - For å kjøre skriptet, start med å bruke en kommandolinje for å navigere til plasseringen av Java-filen. For eksempel, hvis du har lagret filen på skrivebordet, vil kommandoen være:
cd Skrivebord
- Lagre filen, og bruk javac kommando for å kompilere den. Hver gang du gjør endringer i filen, må du kompilere den på nytt med javac.
javac SimpleScript.java
- Kjør applikasjonen:
java SimpleScript
Slik får du tilgang til lokale filer på datamaskinen din
Du kan bruke Fil-klassen til å programmere tilgang til filer i en katalog.
- Opprett en ny mappe, kalt Ny katalog, i samme katalog som Java-filen. Lag noen filer i den – de kan være tomme tekstfiler hvis du vil.
- Importer Fil-klassen øverst i Java-applikasjonen. Dette vil gi deg tilgang til visse metoder og annen funksjonalitet relatert til OS-filer og kataloger.
import java.io. Fil;
- Opprett et nytt filobjekt ved å bruke den relative banen til den nye mappen.
Filkatalog = ny File("NewDirectory");
- Bruk listFiles()-funksjonen for å få tilgang til en liste over alle filene i den katalogen.
File[] listOfFiles = directory.listFiles();
til (Filfil: listOfFiles) {
System.out.println (fil);
} - Kompiler på nytt og kjør programmet ved å bruke javac og java kommandoer.
Hvordan kopiere filer til et annet sted
Det er flere måter du kan kopiere filer på. En vanlig måte å kopiere filer på (spesielt før Java 7 og java.nio.file-pakken), er å bruke klassene FileInputStream eller FileOutputStream.
- De FileInputStream klasse lar deg åpne en inngangsstrøm for å lese bytes fra en fil.
- De FileOutputStream klasse lar deg åpne en utdatastrøm for å skrive byte til en fil.
Når du kopierer filer, er ideen å åpne en input- og outputstrøm. Ved å bruke disse strømmene vil du lese bytene til filen på kildeplasseringen, og deretter skrive disse bytene til den nye plasseringen.
Dette eksemplet vil bruke en nyere implementering for å kopiere filer, ved å bruke copy()-funksjonen fra Files-klassen til java.nio.file-pakken. For å bruke java.nio.file-pakken må du ha Java 7 eller høyere installert.
- Øverst i filen importerer du File- og Path-klassene fra java.nio.file-pakken.
import java.nio.fil. filer;
import java.nio.fil. stier; - Legg til en ny fil kalt FileToCopy.txt i samme katalog som Java-filen. I main()-funksjonen, erklærer du den relative banen til den filen.
String copySource = "FileToCopy.txt";
- Opprett en ny mappe, kalt Ny mappe, for å kopiere filen til. Legg til den relative banen til destinasjonen i hoved()-funksjonen.
String copyDestination = "NewFolder/FileToCopy.txt";
- Bruk metoden copy() for å kopiere filen fra kilden til destinasjonen.
prøve {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} å fange(Unntak e) {
System.out.println("Kunne ikke kopiere spesifikasjonsfilen i: " + copyDestination
+ ". Kryss av hvis mappen eller filen eksisterer allerede.");
} - Kompiler på nytt og kjør programmet ved å bruke javac og java kommandoer.
- Åpne den nye mappen for å bekrefte at programmet har kopiert filen din.
Hvordan flytte filer eller mapper
Du kan flytte filer eller mapper ved å bruke bevege seg() funksjon i klassen Files, som også er en del av java.nio.file-pakken.
- Opprett en ny mappe kalt DirectoryToMove i samme mappe som Java-filen.
- Opprett en andre mappe kalt Ny katalog i samme mappe. Det er her programmet vil flytte den opprinnelige mappen til.
- Opprett filobjekter for katalogen du vil flytte, og plasseringen du vil flytte den til:
File moveSource = ny File("DirectoryToMove");
File moveDestination = ny File("NewDirectory/DirectoryToMove"); - Bruke Files.move() metode for å flytte filen fra kilden til destinasjonen:
prøve {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Katalog flyttet vellykket.");
} å fange (IOException ex) {
ex.printStackTrace();
} - Kompiler på nytt og kjør programmet ved å bruke javac og java kommandoer.
- Åpne NewDirectory-mappen for å se at mappen "DirectoryToMove" nå er inne.
Hvordan slette en fil
Du kan bruke slett() metode fra File-klassen for å slette en bestemt fil.
- Lag en fil som heter FileToDelete.txt. Lagre filen i samme mappe som Java-programmet.
- Opprett et nytt filobjekt for filen du vil slette. Bruk deretter delete()-metoden for å slette filen. Slettmetoden returnerer en sann eller usann verdi, avhengig av om slettingen var vellykket.
File fileToDelete = ny File("FileToDelete.txt");
hvis (fileToDelete.delete()) {
System.out.println("Fil slettet.");
} ellers {
System.out.println("Kan ikke slette filen.");
}
Hvordan zippe filer
Det er mange måter du kan lage et zip-arkiv på som inneholder flere komprimerte filer. Dette eksemplet vil bruke ZipOutputStream og ZipEntry klasser.
- Importer de nødvendige klassene ZipOutputStream, ZipEntry og FileOutputStream øverst i filen.
import java.util.zip. ZipOutputStream;
import java.util.zip. ZipEntry;
import java.io. FileOutputStream; - Lag zip-filen og en liste over zipEntry-objekter som representerer tekstfilene du vil zippe. Dette eksemplet vil generere nye tekstfiler, men du kan endre skriptet senere for å inkludere tekstfiler som allerede eksisterer.
Fil zipFile = ny File("ZippedFile.zip");
ZipEntry[] zipEntries = ny ZipEntry[] {ny ZipEntry("zipFile1.txt"),
ny ZipEntry("zipFile2.txt"), ny ZipEntry("zipFile3.txt"}); - Opprett zip-utdatastrømmen for å skrive data til zip-filen.
ZipOutputStream ut = ny ZipOutputStream(ny FileOutputStream (zipFile));
- Legg til hver fil i zip-mappen, og lukk strømmen.
til (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = ny StringBuilder();
sb.append("Innhold i tekstfil");byte[] data = sb.toString().getBytes();
out.write (data, 0, data.length);
out.closeEntry();
}out.close();
- Kompiler på nytt og kjør programmet ved å bruke javac og java kommandoer. Du vil se den nye zip-mappen vises i filkatalogen din.
Automatisering av enkle oppgaver med Java
Du kan bruke et skript til å fullføre repeterende filbehandlingsoppgaver programmatisk. Disse oppgavene inkluderer tilgang til, kopiering, flytting, sletting og zipping av filer.
En annen måte du kan automatisere repeterende oppgaver på er ved å bruke systemkommandoer i en skriptfil. På Linux og macOS er slike filer kjent som shell-skript, mens Windows refererer til dem som batch-skript.