Joitakin hyödyllisiä FileHandlen menetelmiä
Jotkut FileHandle-moduulin yleisesti käytetyt menetelmät ovat seuraavat:
Menetelmä | Tarkoitus |
kertoa | Sitä käytetään laskemaan tiedoston koko tavuina. |
getc | Sitä käytetään tiedoston sisällön jokaisen merkin lukemiseen. |
etsiä | Sitä käytetään siirtämään tiedostoosoitin tiettyyn paikkaan. |
eof | Se osoittaa tiedoston lopun. |
kiinni | Sitä käytetään aiemmin määritellyn tiedostokäsittelijän sulkemiseen. |
Esimerkkejä Perl FileHandlesta
Tässä opetusohjelman osassa esitetään useita FileHandle-moduulin käyttötapoja useilla esimerkeillä.
Esimerkki 1: Luo uusi tiedosto
Luo Perl-tiedosto seuraavalla komentosarjalla, joka luo uuden tiedoston FileHandle-moduulin avulla. Tiedostonimi otetaan käyttäjältä ja tarkistetaan, onko se olemassa vai ei. Jos tiedostoa ei ole olemassa, tiedosto avataan kirjoittamista varten luomalla 'FileHandle'-luokan objekti 1 sekunnin odottamisen jälkeen.
#!/usr/bin/perl
käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä FileHandlea ;
#Ota luotavan tiedoston nimi käyttäjältä
Tulosta 'Anna tiedostonimi:' ;
minun $f = <>;
chomp ( $f ) ;
#Tarkista, onko tiedosto jo olemassa vai ei
jos ( -e $f )
{
#Tulosta viesti, jos tiedosto on olemassa
sanoa 'Tiedosto on jo olemassa.' ;
}
muu
{
#Luo tiedostonkäsittelyobjekti
minun $FileHandler = Tiedoston kahva- > Uusi ;
sanoa 'Kirjoitetaan tiedostoon...' ;
#Odota 1 sekunti
nukkua ( 1 ) ;
#Avaa tiedosto kirjoittamista varten
jos ( $FileHandler- > avata ( '> $f' ) )
{
#Kirjoita rivi tekstiä tiedostoon
Tulosta $FileHandler 'Se on testiviesti. \n Se on toinen rivi. \n ' ;
#Sulje tiedostonkäsittely
$FileHandler- > kiinni ;
}
}
Lähtö:
Tulosteen mukaan 'test.txt' -tiedostoa ei ollut aiemmin olemassa ja tämä tiedosto on luotu kahdella rivillä tekstiä. Sitten suoritetaan 'kissa'-komento tarkistaakseen, onko tiedosto luotu onnistuneesti sisällön kanssa vai ei:
Skripti suoritetaan uudelleen samalla syöttöarvolla ja 'Tiedosto on jo olemassa' -viesti tulostetaan tähän, koska 'test.txt'-tiedosto on luotu aiemmin.
Esimerkki 2: Lue tiedoston sisältö
Luo Perl-tiedosto seuraavalla komentosarjalla, joka lukee tiedoston sisällön käyttämällä 'FileHandle'-luokkaa, jos tiedosto on olemassa. Tiedostonimi on otettu käyttäjältä.
#!/usr/bin/perlkäytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä FileHandlea ;
#Ota luotavan tiedoston nimi käyttäjältä
minun $f = <>;
minun $f = ;
chomp ( $f ) ;
#Tarkista, onko tiedosto jo olemassa vai ei
jos ( -e $f )
{
#Avaa tiedosto lukemista varten
minun $FileHandler = Tiedoston kahva- > Uusi ( '< $f' ) ;
#Tulosta tiedoston sisältö
Tulosta < $FileHandler >;
#Sulje tiedostonkäsittely
sulje $FileHandler ;
}
Lähtö:
Test.txt-tiedoston sisältö tulostetaan, koska se on olemassa nykyisessä paikassa:
Esimerkki 3: Sisällön liittäminen tiedostoon
Luo Perl-tiedosto seuraavalla komentosarjalla, joka liittää sisällön ei-tyhjään tiedostoon ja tulostaa tiedoston koon tavuina. Tiedostonimi on otettu käyttäjältä. Jos tiedosto on olemassa ja sisältää tiedot, tiedoston loppuun lisätään rivi tekstiä. Muussa tapauksessa tulostetaan viesti.
#!/usr/bin/perlkäytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä FileHandlea ;
#Ota luotavan tiedoston nimi käyttäjältä
Tulosta 'Anna tiedostonimi:' ;
minun $f = <>;
chomp ( $f ) ;
#Tarkista, onko tiedosto jo olemassa ja tyhjä vai ei
jos ( -s $f )
{
minun $FileHandler = Tiedoston kahva- > Uusi ( ' >> $f' ) ;
#Tulosta tiedostokoko
Tulosta 'Tiedoston koko on' . $FileHandler- > kertoa. 'tavua. \n ' ;
sanoa 'Lisätään sisältöä tiedostoon...' ;
#Odota 1 sekunti
nukkua ( 1 ) ;
#Kirjoita sisältö tiedoston loppuun
Tulosta $FileHandler 'Se on uusi linja. \n ' ;
#Sulje tiedostonkäsittely
$FileHandler- > kiinni ;
}
muu
{
sanoa 'Tiedostoa ei ole.' ;
}
Lähtö:
Tulosteen mukaan 'test.txt'-tiedostoon lisätään uusi rivi ja tiedoston koko on 45 tavua. Sitten suoritetaan 'kissa'-komento tarkistaakseen, onko sisältö lisätty oikein tiedostoon vai ei:
Johtopäätös
FileHandle-moduuli on yksi Perlin vaihtoehdoista tiedostojen lukemiseen, kirjoittamiseen tai liittämiseen. Tässä opetusohjelmassa esitetään tämän moduulin kolme erilaista käyttötapaa yksinkertaisten esimerkkien avulla.