Escrevendo um arquivo de texto

Elixir:
Escrevendo um arquivo de texto

Como fazer:

Elixir torna o manuseio de arquivos direto com módulos integrados. A principal maneira de escrever em um arquivo é usando as funções File.write/2 ou File.write!/2, onde a primeira retorna uma tupla :ok ou :error e a última gera um erro em caso de falha.

Aqui está um exemplo simples:

# Escrevendo em um arquivo, mensagem simples
File.write("hello.txt", "Olá, Mundo!")

# Quando você executa o código, ele cria 'hello.txt' com "Olá, Mundo!" como conteúdo

Para acrescentar a arquivos, você usaria File.open/3 com as opções [:write, :append], depois IO.binwrite/2 para acrescentar o conteúdo:

# Acrescentando a um arquivo
{:ok, arquivo} = File.open("hello.txt", [:write, :append])
IO.binwrite(arquivo, "\nVamos adicionar outra linha.")
File.close(arquivo)

# Agora 'hello.txt' inclui uma segunda linha "Vamos adicionar outra linha."

Se você está trabalhando com grandes volumes de dados ou precisa de mais controle sobre o processo de escrita, você pode usar o módulo Stream para escrever dados de forma preguiçosa no arquivo:

# Escrevendo um grande conjunto de dados de maneira preguiçosa
stream_data = Stream.iterate(0, &(&1 + 1))
            |> Stream.map(&("Número: #{&1}\n"))
            |> Stream.take(10)

File.open!("numbers.txt", [:write], fn arquivo ->
  Enum.each(stream_data, fn linha ->
    IO.write(arquivo, linha)
  end)
end)

# Isso cria 'numbers.txt', escrevendo os números de 0 a 9, cada um em uma nova linha.

Para projetos que requerem manuseio de arquivos mais sofisticado, você pode investigar bibliotecas de terceiros como CSV, que oferece funcionalidades sob medida para manipulação de arquivos CSV, mas lembre-se, para muitos propósitos, as capacidades integradas do Elixir são mais do que suficientes.