Ruby:
Textdatei einlesen
So geht’s:
Um eine Datei zu lesen, nutze File.read
, File.readlines
oder den File.open
-Block. Hier sind ein paar Beispiele:
# Ganze Datei auf einmal lesen
inhalt = File.read('beispiel.txt')
puts inhalt
# Datei Zeile für Zeile lesen
File.readlines('beispiel.txt').each do |zeile|
puts zeile
end
# Datei mit einem Block öffnen
File.open('beispiel.txt', 'r') do |datei|
datei.each_line do |zeile|
puts zeile
end
end
Ausgabe könnte so aussehen:
Hallo Welt!
Das ist die zweite Zeile.
Hier endet die Datei.
Deep Dive
Das Lesen von Textdateien ist ein grundlegendes Konzept und bereits seit den frühen Tagen der Programmierung essenziell. Vor Ruby hatten Programmiersprachen wie C oder Perl eigene Wege, um mit Dateien zu arbeiten. Ruby hat die Arbeit mit Dateien stark vereinfacht.
Alternativen zum Lesen von Dateien in Ruby sind I/O-Streams (IO
-Klasse) und niedrigere Level-Operationen mit syscall
. Für größere Dateien ist es effizienter, den Inhalt zeilenweise über einen File.open
-Block zu verarbeiten, damit nicht der gesamte Inhalt im Speicher gehalten wird.
Beim Implementieren solcher Funktionen muss man auch Fehlerbehandlung bedenken. Zum Beispiel sollten Sie Ausnahmen behandeln, falls Dateien nicht existieren oder nicht gelesen werden können:
begin
File.readlines('nicht_existierende_datei.txt')
rescue Errno::ENOENT => e
puts "Datei wurde nicht gefunden: #{e}"
end
See Also
- Die offizielle Ruby-Dokumentation zu File-Klassenmethoden: Ruby-Docs File
- Ein Rundgang durch Ruby I/O: Ruby I/O
- Fehlerbehandlung in Ruby: Ruby Exception Handling