Ruby:
Lendo um arquivo de texto
Como Fazer:
# Lendo um arquivo inteiro
conteudo = File.read('exemplo.txt')
puts conteudo
# Lendo linha por linha
File.foreach('exemplo.txt') do |linha|
puts linha
end
# Maneira segura usando bloco File.open
File.open('exemplo.txt', 'r') do |arquivo|
while linha = arquivo.gets
puts linha
end
end
Saída de exemplo para um arquivo exemplo.txt
com o conteúdo “Olá, Mundo!”:
Olá, Mundo!
Olá, Mundo!
Olá, Mundo!
Aprofundando
Historicamente, a leitura de arquivos é tão antiga quanto a própria programação. Nos primórdios da computação, os dados eram lidos de fitas e cartões perfurados. Hoje, ler arquivos é uma operação padrão em qualquer linguagem de programação.
No Ruby, há várias formas de ler um arquivo, como vimos acima. File.read
carrega o arquivo inteiro na memória, o que é fácil, mas pode ser ineficiente para arquivos muito grandes. File.foreach
e File.open
com um bloco são mais eficientes em memória porque processam o arquivo linha por linha.
Outra alternativa é a biblioteca IO
, da qual File
é uma subclasse. IO
fornece métodos de nível mais baixo para controle de arquivos e fluxos de entrada/saída.
Quando ler um arquivo, também é importante considerar a codificação (encoding
). Ruby suporta múltiplas codificações e permite especificá-las durante a leitura do arquivo.