Elixir:
Pisanie pliku tekstowego

Jak to zrobić:

Elixir ułatwia pracę z plikami dzięki wbudowanym modułom. Podstawowym sposobem na zapis do pliku jest użycie funkcji File.write/2 lub File.write!/2, gdzie pierwsza zwraca krotkę :ok lub :error, a druga zgłasza błąd w przypadku niepowodzenia.

Oto prosty przykład:

# Zapisywanie do pliku, prosta wiadomość
File.write("hello.txt", "Witaj, Świecie!")

# Po uruchomieniu kodu, tworzy plik 'hello.txt' z treścią "Witaj, Świecie!"

Do dopisywania do plików używa się File.open/3 z opcjami [:write, :append], a następnie IO.binwrite/2, aby dopisać treść:

# Dopisywanie do pliku
{:ok, file} = File.open("hello.txt", [:write, :append])
IO.binwrite(file, "\nDodajmy kolejną linię.")
File.close(file)

# Teraz 'hello.txt' zawiera drugą linię "Dodajmy kolejną linię."

Jeśli pracujesz z dużymi danymi lub potrzebujesz większej kontroli nad procesem zapisu, możesz użyć modułu Stream, aby leniwie zapisywać dane do pliku:

# Leniwe zapisywanie dużego zbioru danych
stream_data = Stream.iterate(0, &(&1 + 1))
            |> Stream.map(&("Numer: #{&1}\n"))
            |> Stream.take(10)

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

# Tworzy to 'numbers.txt', zapisując liczby od 0 do 9, każdą w nowej linii.

W projektach wymagających bardziej zaawansowanej obsługi plików, można również sięgnąć po biblioteki stron trzecich, takie jak CSV, które oferują dostosowane funkcjonalności do manipulacji plikami CSV, ale pamiętaj, dla wielu zastosowań, wbudowane możliwości Elixira są więcej niż wystarczające.