Lendo um arquivo de texto

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.

Veja Também