如何在elixir中写入RAM中的文件?

时间:2016-11-04 07:25:08

标签: elixir

因此,如果我用Elixir在RAM内存中打开一个文件(见下面的代码2),如何在RAM中写入该文件,然后在写入完成后检索其内容?模式匹配返回" #Port< 0.11114>",这与文件句柄PID不同,显然为 IO.write#Port< 0.11114>," hello&# 34; 返回错误,例如:

代码1

** (CaseClauseError) no case clause matching: {#Port<0.11114>}
    (elixir) lib/io.ex:495: IO.write/2

代码2

File.open("text.txt", [:ram])
 # => {:ok, {:file_descriptor, :ram_file, #Port<0.11114>}}

1 个答案:

答案 0 :(得分:2)

好的,这应该适合你:

{:ok, file} = File.open("text.txt",[:ram, :write])
IO.binwrite(file,"This is a test")

请注意,如果我未在:write调用中传递File.open原子,则在尝试写入文件时会出现:ebadf错误。