Elixir:
Att skriva en textfil
Hur man gör:
Elixir gör filhantering okomplicerad med inbyggda moduler. Det primära sättet att skriva till en fil är att använda funktionerna File.write/2
eller File.write!/2
, där den första returnerar en :ok
eller :error
tupel och den senare orsakar ett fel vid misslyckande.
Här är ett enkelt exempel:
# Skriver till en fil, enkelt meddelande
File.write("hello.txt", "Hello, World!")
# När du kör koden skapas 'hello.txt' med "Hello, World!" som innehåll
För att lägga till i filer skulle du använda File.open/3
med alternativen [:write, :append]
, sedan IO.binwrite/2
för att lägga till innehållet:
# Lägger till i en fil
{:ok, fil} = File.open("hello.txt", [:write, :append])
IO.binwrite(fil, "\nLåt oss lägga till en annan rad.")
File.close(fil)
# Nu innehåller 'hello.txt' en andra rad "Låt oss lägga till en annan rad."
Om du arbetar med stora data eller behöver mer kontroll över skrivprocessen, kan du använda Stream
-modulen för att lat ladda data till filen:
# Skriver en stor datamängd lat
stream_data = Stream.iterate(0, &(&1 + 1))
|> Stream.map(&("Nummer: #{&1}\n"))
|> Stream.take(10)
File.open!("numbers.txt", [:write], fn fil ->
Enum.each(stream_data, fn rad ->
IO.write(fil, rad)
end)
end)
# Detta skapar 'numbers.txt', och skriver nummer 0 till 9, varje på en ny rad.
För projekt som kräver mer avancerade filhanteringar kan du titta på tredjepartsbibliotek som CSV
, vilket erbjuder skräddarsydda funktioner för hantering av CSV-filer men kom ihåg, för många ändamål är Elixirs inbyggda förmågor mer än tillräckliga.