因此,如果我用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>}}
答案 0 :(得分:2)
好的,这应该适合你:
{:ok, file} = File.open("text.txt",[:ram, :write])
IO.binwrite(file,"This is a test")
请注意,如果我未在:write
调用中传递File.open
原子,则在尝试写入文件时会出现:ebadf
错误。