Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Enigo kaj eligo

Dosierteniloj

Legi aŭ skribi tutan dosieron samtempe estas oportune, sed foje vi volas trairi dosieron linio post linio, aŭ teni dosieron malfermita dum vi skribas al ĝi ripete. Por tio vi uzas dosiertenilon.

La plej simpla maniero legi dosieron linio post linio eĉ ne bezonas eksplicitan tenilon: la metodo lines sur vojobjekto donas la liniojn unu post la alia, pretajn por buklo for:

spurt 'words.txt', "one\ntwo\nthree\n";

for 'words.txt'.IO.lines -> $line {
    say $line.uc;
}

Ĉiu $line estas unu linio, sen sia fina linifino. La programo presas:

ONE
TWO
THREE

Por skribi al dosiero tra tenilo, malfermu ĝin per open kaj la flago :w (skribi), uzu la metodojn sayprint de la tenilo, kaj close ĝin, kiam vi finis:

my $fh = open 'out.txt', :w;
$fh.say('first line');
$fh.say('second line');
$fh.close;

Fermi la tenilon certigas, ke ĉio, kion vi skribis, estas elŝovita al disko. Legi linion post linio, kiel supre, estas la kutima maniero trakti dosierojn, kiuj estas tro grandaj por engluti en memoron samtempe.

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Ekzercoj

En ĉi tiu sekcio estas 4 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.

  1. Numeru la liniojn
  2. Nombru la liniojn
  3. Skribi per tenilo
  4. Transdonu tenilon al funkcio

Kursa navigado

Kvizo — Forigi dosierojn   |   Numeru la liniojn