erlang,将整数值写入文件

com*_*ose 3 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,write]),
Val=23424,
file:write(F,Val).
Run Code Online (Sandbox Code Playgroud)

有什么建议?
实际上我想为Web服务器编写一个基准测试代码,我需要将所有的时间值和没有请求的值写入输出文件,然后我将用它来绘制带有gnuplot的图形.

Jon*_*tar 10

使用integer_to_list/1到整数转换为一个列表file:write/2.

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


rvi*_*ing 5

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