Dosyayı bir kerede okuyabilirsiniz:
content = File.readlines 'file.txt'
content.each_with_index{|line, i| puts "#{i+1}: #{line}"}
Dosya büyükse veya büyük olabilirse, dosyayı satır satır işlemek genellikle daha iyidir:
File.foreach( 'file.txt' ) do |line|
puts line
end
Bazen dosya tanıtıcısına erişmek veya okumaları kendiniz kontrol etmek istersiniz:
File.open( 'file.txt' ) do |f|
loop do
break if not line = f.gets
puts "#{f.lineno}: #{line}"
end
end
İkili dosyalarda, nil-separator ve bir blok boyutu belirtebilirsiniz, örneğin:
File.open('file.bin', 'rb') do |f|
loop do
break if not buf = f.gets(nil, 80)
puts buf.unpack('H*')
end
end
Son olarak, örneğin birden fazla dosyayı aynı anda işlerken blok olmadan yapabilirsiniz. Bu durumda, dosya açıkça kapatılmalıdır (@antinome yorumuna göre geliştirildi):
begin
f = File.open 'file.txt'
while line = f.gets
puts line
end
ensure
f.close
end
Kaynaklar: File API ve IO API .