Ruby:
Lese en tekstfil
How to:
# Enkel lesing av en hel fil
contents = File.read('eksempel.txt')
puts contents
# Linje for linje lesing
File.foreach('eksempel.txt') { |line| puts line }
# Lesing med en filhåndterer
File.open('eksempel.txt', 'r') do |file|
file.each_line do |line|
puts line
end
end
# Håndtering av unntak hvis filen ikke finnes
begin
contents = File.read('ikkeeksisterende.txt')
rescue Errno::ENOENT => e
puts "Filen ble ikke funnet: #{e.message}"
end
Dette er innholdet i eksempel.txt filen.
Dette er innholdet i eksempel.txt filen, ønsket visning av linje for linje.
Dette er innholdet i eksempel.txt filen, når leses gjennom en filhåndterer.
Filen ble ikke funnet: No such file or directory @ rb_sysopen - ikkeeksisterende.txt
Deep Dive:
Lesing av tekstfiler i Ruby har røtter tilbake til UNIX-filosofien, der alt er en fil. Dette enkle konseptet gjør det kraftfullt og fleksibelt å jobbe med data i mange former.
Alternativer til File.read
inkluderer biblioteker som CSV
for kommadelte verdier eller YAML
og JSON
parsers for strukturerte data. En IO
klasse er også tilgjengelig for lavnivå I/O-operasjoner.
Implementasjonsdetaljer blir viktige når man håndterer store filer. For eksempel, File.read
leser hele filen til minnet som kan være problematisk med veldig store filer. Å bruke File.foreach
eller File.open
med en blokk lar oss behandle hver linje separat, noe som er mer minneeffektivt.
See Also:
- Ruby’s I/O-klassedokumentasjon: Ruby IO Docs
- Lær om
CSV
biblioteket: Ruby CSV Docs - Ytterligere lesing på filbehandling i Ruby: Ruby File Docs