On monia toistuvia tehtäviä, jotka sinun on ehkä suoritettava aika ajoin. Yksi esimerkki on, jos sinun on tehtävä säännöllisesti muutoksia paikallisen tietokoneen tiedostoihin. Näitä toimintoja voivat olla tiedostojen kopiointi, siirtäminen, poistaminen tai arkistointi.
Sen sijaan, että suorittaisit nämä toistuvat tehtävät manuaalisesti, voit automatisoida ne ohjelman avulla. Voit tehdä tämän yhdellä komentosarjatiedostolla käyttämällä yhtä monista saatavilla olevista ohjelmointikielistä, kuten Java.
Java-sovelluksen määrittäminen
Varmista ensin, että sinulla on Oraclen Java SE -kehityspaketti asennettu. Luo sitten yksinkertainen Java-konsolisovellus:
- Luo tiedosto mihin tahansa tietokoneellesi nimeltä SimpleScript.java.
- Avaa tiedosto tekstieditorissa tai IDE: ssä.
- Tuo IOException Class tiedoston yläosassa. Tämän avulla voit käsitellä tiedostoon tai IO: iin liittyviä poikkeuksia, kun yrität suorittaa tiettyjä toimintoja, kuten kopioida tiedostoa.
tuonti java.io. IOException;
- Lisää alla Java pääluokka ja pää menetelmä. Päämenetelmä suoritetaan, kun käynnistät sovelluksen. Toistaiseksi tulosta vain viesti varmistaaksesi, että ohjelma toimii oikein. Tämän jälkeen voit testata niitä korvaamalla pääfunktion sisällön millä tahansa seuraavista esimerkeistä.
luokkaaSimpleScript{
julkinenstaattinenmitätönpää(Joukarit[])heittoja IOException {
System.out.println("Yksinkertainen konsolisovellus");
}
} - Aloita komentosarjan suorittaminen navigoimalla java-tiedoston sijaintiin komentorivin avulla. Jos olet esimerkiksi tallentanut tiedostosi työpöydälle, komento olisi:
CD Työpöytä
- Tallenna tiedosto ja käytä javac komento kääntää se. Aina kun teet muutoksia tiedostoon, sinun on käännettävä se uudelleen javac.
javac SimpleScript.java
- Suorita sovellus:
java SimpleScript
Kuinka käyttää paikallisia tiedostoja tietokoneellasi
Voit käyttää tiedostoluokkaa hakemiston tiedostojen ohjelmointiin.
- Luo uusi kansio nimeltä Uusi hakemisto, samassa hakemistossa kuin java-tiedostosi. Luo tiedostoja sen sisään – ne voivat olla tyhjiä tekstitiedostoja, jos haluat.
- Tuo Java-sovelluksesi yläosassa oleva Tiedostoluokka. Tämän avulla voit käyttää tiettyjä menetelmiä ja muita käyttöjärjestelmän tiedostoihin ja hakemistoihin liittyviä toimintoja.
tuonti java.io. tiedosto;
- Luo uusi tiedostoobjekti käyttämällä suhteellista polkua uuteen kansioon.
Tiedostohakemisto = Uusi Tiedosto("UusiDirectory");
- Käytä listFiles()-funktiota päästäksesi luetteloon kaikista kyseisen hakemiston tiedostoista.
Tiedosto[] listOfFiles = hakemisto.listFiles();
varten (Tiedostotiedosto: listOfFiles) {
System.out.println (tiedosto);
} - Käännä ja suorita ohjelma uudelleen käyttämällä javac ja java komentoja.
Kuinka kopioida tiedostoja toiseen paikkaan
Voit kopioida tiedostoja useilla tavoilla. Yleinen tapa kopioida tiedostoja (etenkin ennen Java 7:ää ja java.nio.file-pakettia) on käyttää FileInputStream- tai FileOutputStream-luokkia.
- The FileInputStream luokan avulla voit avata syöttövirran lukeaksesi tavuja tiedostosta.
- The FileOutputStream luokan avulla voit avata lähtövirran kirjoittaaksesi tavuja tiedostoon.
Tiedostoja kopioitaessa ideana on avata syöttö- ja lähtövirta. Näitä virtoja käyttämällä luet tiedoston tavut lähdesijainnissa ja kirjoitat sitten ne tavut uuteen sijaintiin.
Tämä esimerkki käyttää uudempaa toteutusta tiedostojen kopioimiseen käyttämällä java.nio.file-paketin Tiedostot-luokasta copy()-funktiota. Java.nio.file-paketin käyttäminen edellyttää Java 7 -versiota tai uudempaa versiota.
- Tuo tiedoston yläreunasta tiedosto- ja polkuluokat java.nio.file-paketista.
tuonti java.nio.tiedosto. Tiedostot;
tuonti java.nio.tiedosto. Polut; - Lisää uusi tiedosto nimeltä FileToCopy.txt samassa hakemistossa kuin java-tiedostosi. Ilmoita main()-funktiossa kyseisen tiedoston suhteellinen polku.
String copySource = "FileToCopy.txt";
- Luo uusi kansio nimeltä Uusi kansio, kopioidaksesi tiedoston. Lisää suhteellinen polku määränpäähän main()-funktiossa.
String copyDestination = "NewFolder/FileToCopy.txt";
- Käytä copy()-menetelmää kopioidaksesi tiedoston sen lähteestä kohteeseen.
yrittää {
Files.copy (Paths.get (copySource), Paths.get (copyDestination));
} ottaa kiinni(Poikkeus e) {
System.out.println("Teknistä tiedostoa ei voitu kopioida: " + copyDestination
+ ". Tarkistaa jos kansio tai tiedosto on jo olemassa.");
} - Käännä ja suorita ohjelma uudelleen käyttämällä javac ja java komentoja.
- Avaa Uusi kansio vahvistaaksesi, että ohjelma on kopioinut tiedostosi.
Kuinka siirtää tiedostoja tai kansioita
Voit siirtää tiedostoja tai kansioita käyttämällä liikkua() funktio Tiedostot-luokassa, joka on myös osa java.nio.file-pakettia.
- Luo uusi kansio nimeltä DirectoryToMove samassa kansiossa Java-tiedoston kanssa.
- Luo toinen kansio nimeltä Uusi hakemisto samassa kansiossa. Tänne ohjelma siirtää alkuperäisen kansion.
- Luo tiedostoobjekteja hakemistoon, jonka haluat siirtää, ja sijaintiin, johon haluat siirtää sen:
Tiedosto moveSource = Uusi Tiedosto("Liikkuva hakemisto");
Tiedosto moveDestination = Uusi File("NewDirectory/DirectoryToMove"); - Käytä Files.move() tapa siirtää tiedosto lähteestä kohteeseen:
yrittää {
Files.move (moveSource.toPath(), moveDestination.toPath());
System.out.println("Hakemisto siirretty onnistuneesti.");
} ottaa kiinni (IOException ex) {
esim.printStackTrace();
} - Käännä ja suorita ohjelma uudelleen käyttämällä javac ja java komentoja.
- Avaa NewDirectory-kansio nähdäksesi, että "DirectoryToMove" -kansio on nyt sisällä.
Kuinka poistaa tiedosto
Voit käyttää poistaa() -menetelmällä tiedostoluokasta tietyn tiedoston poistamiseksi.
- Luo tiedosto nimeltä FileToDelete.txt. Tallenna tiedosto samaan kansioon kuin Java-sovellus.
- Luo uusi tiedostoobjekti tiedostolle, jonka haluat poistaa. Käytä sitten sen delete()-menetelmää tiedoston poistamiseen. Poista-menetelmä palauttaa arvon tosi tai epätosi sen mukaan, onnistuiko poisto.
FileToDelete = Uusi Tiedosto("TiedostoPoista.txt");
jos (fileToDelete.delete()) {
System.out.println("Tiedosto poistettu onnistuneesti.");
} muu {
System.out.println("Tiedostoa ei voi poistaa.");
}
Kuinka pakata tiedostoja
Voit luoda zip-arkiston monella eri tavalla sisältää useita pakattuja tiedostoja. Tässä esimerkissä käytetään ZipOutputStream ja ZipEntry luokat.
- Tuo tarvittavat ZipOutputStream-, ZipEntry- ja FileOutputStream-luokat tiedoston yläosassa.
tuonti java.util.zip. ZipOutputStream;
tuonti java.util.zip. ZipEntry;
tuonti java.io. FileOutputStream; - Luo zip-tiedosto ja luettelo zipEntry-objekteista, jotka edustavat pakattavia tekstitiedostoja. Tämä esimerkki luo uusia tekstitiedostoja, mutta voit muokata komentosarjaa myöhemmin sisällyttämällä siihen jo olemassa olevia tekstitiedostoja.
Tiedosto zipFile = Uusi Tiedosto("ZippedFile.zip");
ZipEntry[] zipEntries = Uusi ZipEntry[] {Uusi ZipEntry("zipFile1.txt"),
Uusi ZipEntry("zipFile2.txt"), Uusi ZipEntry("zipFile3.txt")}; - Luo zip-tulostusvirta tietojen kirjoittamiseksi zip-tiedostoon.
ZipOutputStream ulos = Uusi ZipOutputStream(Uusi FileOutputStream (zipFile));
- Lisää jokainen tiedosto zip-kansioon ja sulje stream.
varten (ZipEntry zipEntry: zipEntries) {
out.putNextEntry (zipEntry);StringBuilder sb = Uusi StringBuilder();
sb.append("Sisältö tekstitiedoston sisällä");tavu[] data = sb.toString().getBytes();
out.write (data, 0, data.length);
out.closeEntry();
}out.close();
- Käännä ja suorita ohjelma uudelleen käyttämällä javac ja java komentoja. Näet uuden zip-kansion ilmestyvän tiedostohakemistoosi.
Yksinkertaisten tehtävien automatisointi Javalla
Voit käyttää komentosarjaa toistuvien tiedostonhallintatehtävien suorittamiseen ohjelmallisesti. Näitä tehtäviä ovat tiedostojen käyttö, kopioiminen, siirtäminen, poistaminen ja pakkaaminen.
Toinen tapa automatisoida toistuvia tehtäviä on käyttää komentosarjatiedostossa olevia järjestelmäkomentoja. Linuxissa ja macOS: ssä tällaisia tiedostoja kutsutaan shell-skripteiksi, kun taas Windows viittaa niihin eräskripteinä.