erlang,将整数值写入文件

erlang,将整数值写入文件,erlang,Erlang,我想将整数值打印到文件中。我可以将字符串值写入文件,但当我尝试写入整数值时,会出现错误: %this works fine {ok, F}=file:open("bff.txt", [read,write]), Val="howdy", file:write(F,Val). %this gets compiled, but results in error {error, badarg} while executing {ok, F}=file:open("bff.txt", [read,wr

我想将整数值打印到文件中。我可以将字符串值写入文件,但当我尝试写入整数值时,会出现错误:

%this works fine
{ok, F}=file:open("bff.txt", [read,write]),
Val="howdy",
file:write(F,Val).

%this gets compiled, but results in error {error, badarg} while executing
{ok, F}=file:open("bff.txt", [read,write]),
Val=23424,
file:write(F,Val).
有什么建议吗?

实际上,我想为web服务器编写一个基准测试代码,我需要将所有时间值和请求数写入一个输出文件,然后我将使用它用gnuplot绘制图形。

使用
integer\u to\u list/1
将整数转换为
file:write/2
的列表

{ok, F}=file:open("bff.txt", [read,write]), 
Val=integer_to_list(23424), 
file:write(F,Val).

这是因为
file:write
只能输出字符串。另一种方法是使用
io
模块中的函数,这些函数也可以处理文件。因此
io:write(File,Val)
将起作用。您也可以使用格式化io函数
io:format
。这实际上取决于您希望如何格式化数据以及如何读取数据,如果您打算读取数据,仅使用
io:write
写入整数将不会非常有用。

您可以使用term\u to\u binary和binary\u to\u term:

{ok, F} = file:open("bff.txt", [read,write]),
Val = [1,2,3,4],
Data = term_to_binary(Val),
file:write(F, Data),

{ok, BinaryData} = file:read_file("bff.txt"),
Val = binary_to_term(BinaryData),
io:format("~s~w~s", ["Value: ", Val, "\n"]).