Ruby · Essencial · Inglês · Técnico
File open
File.open com bloco abre o arquivo, entrega o objeto ao bloco e o fecha sozinho ao terminar, mesmo se houver exceção. É a forma idiomática de lidar com arquivos.
Onde usar
Aparece em leitura e escrita de arquivos, onde esquecer o close vaza descritores. Para ler tudo de uma vez, File.read é mais curto.
Em código
File.open("notas.txt", "w") do |f|
f.puts "linha 1"
f.puts "linha 2"
end
File.open("notas.txt") do |f|
f.each_line { |l| puts l.chomp }
endExemplos
Open the file with a block so it closes itself.
Abra o arquivo com um bloco para ele se fechar sozinho.
I forgot to close the file and leaked a descriptor.
Esqueci de fechar o arquivo e vazei um descritor.
Cuidado
Sem bloco, File.open devolve o arquivo aberto e você mesmo precisa chamar close, de preferência num ensure.