Курс по Raku / Обекти, вход-изход и изключения / Вход и изход

Файлови манипулатори

Четенето или записването на цял файл наведнъж е удобно, но понякога искате да минете през файла ред по ред или да го държите отворен, докато пишете в него многократно. За това използвате манипулатор на файл.

Най-простият начин да четете файл ред по ред дори не се нуждае от изричен манипулатор: методът lines върху обект-път подава редовете един по един, готови за цикъл for:

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

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

Всеки $line е един ред, без завършващия си нов ред. Програмата отпечатва:

ONE
TWO
THREE

За да пишете във файл през манипулатор, отворете го с open и флага :w (write), използвайте методите say или print на манипулатора и го затворете с close, когато приключите:

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

Затварянето на манипулатора гарантира, че всичко записано е изтласкано на диска. Четенето ред по ред, както по-горе, е обичайният начин да се работи с файлове, които са твърде големи, за да се поберат наведнъж в паметта.

Практика

Направете 1 тест върху съдържанието на тази тема.

Упражнения

Този раздел съдържа 4 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.

  1. Номерирайте редовете
  2. Пребройте редовете
  3. Писане чрез манипулатор
  4. Подайте манипулатор на функция

Навигация в курса

Тест — Изтриване на файлове   |   Номерирайте редовете