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
THREEUm ü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.