Anda dapat membaca file sekaligus:
content = File.readlines 'file.txt'
content.each_with_index{|line, i| puts "#{i+1}: #{line}"}
Ketika file besar, atau mungkin besar, biasanya lebih baik untuk memprosesnya baris demi baris:
File.foreach( 'file.txt' ) do |line|
puts line
end
Kadang-kadang Anda ingin akses ke penanganan file atau mengontrol bacaan sendiri:
File.open( 'file.txt' ) do |f|
loop do
break if not line = f.gets
puts "#{f.lineno}: #{line}"
end
end
Dalam hal file biner, Anda dapat menentukan nil-separator dan ukuran blok, seperti:
File.open('file.bin', 'rb') do |f|
loop do
break if not buf = f.gets(nil, 80)
puts buf.unpack('H*')
end
end
Akhirnya Anda bisa melakukannya tanpa blok, misalnya saat memproses beberapa file secara bersamaan. Dalam hal ini file tersebut harus ditutup secara eksplisit (ditingkatkan sesuai komentar @antinome):
begin
f = File.open 'file.txt'
while line = f.gets
puts line
end
ensure
f.close
end
Referensi: File API dan IO API .