Erlang文件

Erlang文件操作的基础模块是file模块

我最喜欢的一种文本文件读写方法
写列表到Erlang数据文件
{ok, S} = file:open(File, Write),
lists:foreach(fun(X)->io:format(S,"~p.~n", [X]) end, L),
file:close(S).


随机写文件
{ok, S} = file:open(File, write),
io:format(S, "~s~n", ["Hello world"]),
io:format(S, "~w~n", [1234]),
io:format(S, '~p~n", [{age,27},{name,"song"}]),
file:close(S).

读取整个Erlang数据文件,存到列表变量
{ok,List} = file:consult(File)
出错则返回 {error,Why}
列表的每一个元素在文件中以'.'分割

文件中的Erlang数据用'.'分割,形如:
{name,{{first,jason},{last,james}}}.
{address,"china shanghai"}.

-------------------------------------------------


读取整个文件,存到二进制变量
{ok, Bin} = file:read_file(File)
出错则返回 {error,Why}

将二进制数据写入整个文件
file:write_file(File, Bin)

二进制数据可转换成列表
binary_to_list(Bin)

--------------------------------------------------------
查询文件的属性
file:read_file_info(File) 返回的数据符合记录#file_info(在文件file.hrl中定义)

复制文件
file:copy(SrcFile, DestFile)

删除文件
file:delete(File)

---------------------------------
file模块有三个函数用来操纵目录,Dir可以是绝对路径活相对路径
file:list_dir(Dir)生成Dir目录下的文件列表
file:make_dir(Dir)创建一个新的目录
file:del_dir(Dir)删除一个目录


注:file:list_dir(Dir)和file:read_file_info(File)结合可以实现文件搜索/遍历功能




 

你可能感兴趣的:(erlang)