Creating files with information

I have a little doubt,

how do you go about creating and writing a file in the elixir?

Ex:

I intend to create a file with the following information below

my_file.conf

!## My configuration file
Name: test example
Number: 6299999
Ip: 127.0.0.1

Note: Value $ 10000

Note that there are spaces and line breaks.
This my_file.conf file, will need to be created in a specific folder (/var/log/myfile.conf)

I intend that the application itself creates this file.

How do you do that?
Do you use any dependencies for that?

You can use the File module to do that.

It has read and write functions…

1 Like

I was thinking of using System.cmd, running an “echo ‘’ > my_file.txt”, but I didn’t like this solution.

I will read more about what you told me.
Thank you

Hi @gilbertosj, here is an iex session that may help you:

iex(1)> string = """
...(1)> Hi, gilbertosj! That's a great question.
...(1)> You can use EEx (https://github.com/elixir-lang/elixir/tree/master/lib/eex)
...(1)> EEx is part of the standard library and can help you with your task. 
...(1)> EEx + the File module (as stated above) would solve your problem.
...(1)> Here is an example of a variable: <%= variable %>
...(1)> Here is a lesson about this on ElixirSchool: https://elixirschool.com/en/lessons/specifics/eex 
...(1)> Hope this helps!   
...(1)> """
"Hi, gilbertosj! That's a great question.\nYou can use EEx (https://github.com/elixir-lang/elixir/tree/master/lib/eex)\nEEx is part of the standard library and can help you with your task.\nEEx + the File module (as stated above) would solve your problem.\nHere is an example of a variable: <%= variable %>\nHere is a lesson about this on ElixirSchool: https://elixirschool.com/en/lessons/specifics/eex\nHope this helps!\n"
iex(2)> content = EEx.eval_string(string, [variable: "EXAMPLE VARIABLE"])       
"Hi, gilbertosj! That's a great question.\nYou can use EEx (https://github.com/elixir-lang/elixir/tree/master/lib/eex)\nEEx is part of the standard library and can help you with your task.\nEEx + the File module (as stated above) would solve your problem.\nHere is an example of a variable: EXAMPLE VARIABLE\nHere is a lesson about this on ElixirSchool: https://elixirschool.com/en/lessons/specifics/eex\nHope this helps!\n"
iex(3)> File.write!("this_is_a_filename.txt", content)
:ok

Now, you can check the file we just created:

pdg :> cat this_is_a_filename.txt 
Hi, gilbertosj! That's a great question.
You can use EEx (https://github.com/elixir-lang/elixir/tree/master/lib/eex)
EEx is part of the standard library and can help you with your task.
EEx + the File module (as stated above) would solve your problem.
Here is an example of a variable: EXAMPLE VARIABLE
Here is a lesson about this on ElixirSchool: https://elixirschool.com/en/lessons/specifics/eex
Hope this helps!