File io 在Erlang中,我可以使用ets:tab2list而不包括嵌套元组的换行符吗?

File io 在Erlang中,我可以使用ets:tab2list而不包括嵌套元组的换行符吗?,file-io,erlang,ets,File Io,Erlang,Ets,我正在创建一个ets ets:new(myets,[duplicate_bag,public,named_table]). 我以以下格式输入数据: {120869,message,item1,item2,status1,success} {120869,message,item1,item2,status1,fail} {120869,action,message,{oldsetting,40},{newsetting,50}} {93195,model_status} 我想在文本文件中将

我正在创建一个ets

ets:new(myets,[duplicate_bag,public,named_table]). 
我以以下格式输入数据:

{120869,message,item1,item2,status1,success}
{120869,message,item1,item2,status1,fail}
{120869,action,message,{oldsetting,40},{newsetting,50}}
{93195,model_status}
我想在文本文件中将每一行保存为单独的一行。我正以以下方式尝试:

Data = ets:tab2list(myets)
这使得:

[{120869,message,item1,item2,status1,success},
{120869,message,item1,item2,status1,fail},
{120869,action,message,
 {oldsetting,40},
 {newsetting,50}},
{93195,model_status}]
然后我使用
io:format
保存到文件中


但是,我想知道是否有一种简单的方法可以将
myets
保存到文本文件中,而不在第三个元组中添加换行符(嵌套元组开始于
oldsetting
newsetting
)?

好吧,一个简单的打印功能应该可以做到这一点:

print_list(List, File) ->
   lists:foreach(fun(X) -> io:write(File, X), io:nl(File) end, List).

但是,如果您只想保存ets表,您可以使用
保存到\u dets/2
(并使用
从\u dets/2打开它)。

如果文件中有文件设备,则只需执行:

[io:format(File, "~p\n", [I]) || I <- Data].
[io:format(File,“~p\n”,[I])|I