File input/output is part of Short Circuit's Console Program Basics selection.
Task

Create a file called   "output.txt",   and place in it the contents of the file   "input.txt",   via an intermediate variable.

In other words, your program will demonstrate:

   how to read from a file into a variable
   how to write a variable's contents into a file


Oneliners that skip the intermediate variable are of secondary interest — operating systems have copy commands for that.




defmodule FileReadWrite do
  def copy(path,new_path) do
    case File.read(path) do
      # In case of success, write to the new file
      {:ok, body} ->
        # Can replace with :write! to generate an error upon failure
        File.write(new_path,body)
      # If not successful, raise an error
      {:error,reason} -> 
        # Using Erlang's format_error to generate error string
        :file.format_error(reason)
    end
  end
end
 
FileReadWrite.copy("input.txt","output.txt")