Raku kurss / Objekti, ievade/izvade un izņēmumi / Ievade un izvade

Failu deskriptori

Visa faila nolasīšana vai ierakstīšana uzreiz ir ērta, taču dažreiz gribat failam iet cauri pa vienai rindai vai turēt failu atvērtu, kamēr tajā atkārtoti rakstāt. Tam izmantojat faila turi.

Vienkāršākajam veidam, kā failu lasīt pa rindai, skaidri norādīts turis pat nav vajadzīgs: metode lines uz ceļa objekta dod rindas pa vienai, gatavas ciklam for:

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

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

Katrs $line ir viena rinda bez tās beigu jaunās rindas rakstzīmes. Programma izdrukā:

ONE
TWO
THREE

Lai failā rakstītu caur turi, atveriet to ar open un karodziņu :w (rakstīšanai), izmantojiet tura metodes say vai print un aizveriet to ar close, kad esat pabeiguši:

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

Tura aizvēršana gādā, ka viss ierakstītais tiek izskalots uz disku. Lasīšana pa rindai, kā augstāk, ir ierastais veids, kā tikt galā ar failiem, kas ir par lielu, lai tos uzreiz ierautu atmiņā.

Prakse

Jūs gaida 1 viktorīna par šī temata saturu.

Vingrinājumi

Šajā sadaļā ir 4 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.

  1. Numurējiet rindas
  2. Saskaitiet rindas
  3. Rakstīšana ar deskriptoru
  4. Nododiet deskriptoru funkcijai

Kursa navigācija

Viktorīna — Failu dzēšana   |   Numurējiet rindas