如何在不覆盖文件现有内容的情况下将输出写入文本文件?
问题描述:
我已经开发了这一功能,从erlang
的数据传输给.txt
文件:如何在不覆盖文件现有内容的情况下将输出写入文本文件?
exporttxt()->
F1 ="1",
F2 = "afif",
F3 = "kaled",
file:write_file("test.txt",[io_lib:format("~p\t~p\t~p~n",[F1,F2,F3])]).
运行此功能test.txt
后包含以下值:
"1" "afif" "kaled"
,但是当我改变F1
,F2
和F3
在功能exporttxt()
到:
F1 ="2"
F2 ="ahmed"
F3 = "alagi"
然后test.txt
只包含这些值:
"2" "ahmed" "alagi"
,我想test.txt
包含:
"1" "afif" "kaled"
"2" "ahmed" "alagi"
的问题是,在函数的每次执行它记录了新的数据 并删除test.txt
中的旧数据。
如何在不覆盖现有数据的情况下将新数据写入test.txt
?
答
使用file:write_file/3这一点:
第三个参数是Modes
。可能的模式列表被读取为| write | append | exclusive | raw | binary | {delayed_write, Size, Delay} | delayed_write | {read_ahead, Size} | read_ahead | compressed | {encoding, Encoding}
。 append
模式适合您的需求。
您正在寻找append:http://stackoverflow.com/questions/1067617/erlang-file-append-mode – filmor 2013-03-14 11:52:35