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
endSaí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.