Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ein- und Ausgabe

Datei-Handles

Eine ganze Datei auf einmal zu lesen oder zu schreiben ist bequem, aber manchmal möchten Sie eine Datei Zeile für Zeile durchgehen oder eine Datei offen halten, während Sie wiederholt hineinschreiben. Dafür verwenden Sie einen Dateihandle.

Der einfachste Weg, eine Datei zeilenweise zu lesen, braucht nicht einmal einen ausdrücklichen Handle: Die Methode lines auf einem Pfadobjekt liefert die Zeilen einzeln, bereit für eine for-Schleife:

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

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

Jede $line ist eine einzelne Zeile, ohne ihren abschließenden Zeilenumbruch. Das Programm gibt aus:

ONE
TWO
THREE

Um über einen Handle in eine Datei zu schreiben, öffnen Sie sie mit open und dem Schalter :w (write), verwenden die Methoden say oder print des Handles und schließen ihn mit close, wenn Sie fertig sind:

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

Den Handle zu schließen stellt sicher, dass alles Geschriebene auf die Platte gelangt. Zeilenweise zu lesen, wie oben, ist der übliche Weg für Dateien, die zu groß sind, um sie am Stück in den Speicher zu holen.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Übungen

Dieser Abschnitt enthält 4 Übungen. Sehen Sie sich alle Themen dieses Abschnitts an, bevor Sie mit den Übungen beginnen.

  1. Nummerieren Sie die Zeilen
  2. Zeilen zählen
  3. Schreiben mit einem Handle
  4. Übergeben Sie ein Handle an eine Funktion

Kursnavigation

Quiz — Dateien löschen   |   Nummerieren Sie die Zeilen