源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Erlang IO编程之文件目录操作常用方法小结

  • 时间:2020-04-17 10:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Erlang IO编程之文件目录操作常用方法小结
Erlang用于操纵文件I/O的模块有: file模块:打开、读、写、关闭文件已经操作目录的方法基本都在这里 filename模块:提供平台独立方式用于操纵文件名 filelib模块:file模块的扩展,提供了更多的实用工具,在file模块基础上构建 io模块:一系列用于操作打开的文件的方法,解析格式、格式化输出等等。 [b]1.打开文件: [/b]
[u]复制代码[/u] 代码如下:
{ok,F}=file:open("data1.dat",read). %读模式打开 {ok,F}=file:open("data1.dat",write). %写模式 {ok,F}=file:open("data1.dat",[read,write]). %读、写、二进制模式
支持的所有模式参见文档。 [b]2.读取: [/b](1)如果以一个Erlang term的方式读取,采用:
[u]复制代码[/u] 代码如下:
io:read(F,'').
其中第二个参数是提示符,用于在标准输入时作为提示。 这个方法有一个变形read/3
[u]复制代码[/u] 代码如下:
read(IoDevice, Prompt, StartLine)
第三个参数用于指定开始行数。 (2)如果是按字节读取,文件必须按raw模式打开采用:
[u]复制代码[/u] 代码如下:
{ok, Data}=file:read(F,100).
(3)按行读取:
[u]复制代码[/u] 代码如下:
io:get_line(F, '').
(4)读取整个文件的内容:
[u]复制代码[/u] 代码如下:
{ok,Binary}=file:read_file("data1.dat").
注意返回的是一个binary类型 (5)随机读取:
[u]复制代码[/u] 代码如下:
{ok,Binary}=file:pread(F, 22, 46).
其中第二个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。 [b]3.写入文件: [/b](1)采用io:format/3方法:
[u]复制代码[/u] 代码如下:
{ok, S} = file:open("test2.dat", write). io:format(S, "~s~n", ["Hello readers"]). io:format(S, "~w~n", [123]).
其中的~开头的字符是一个个格式化命令,比如常见的: ~c   anscii码 ~f   浮点数 ~s   字符串 ~w   Erlang term ~p   与~w类似,不过当多行时将自动换行 ~n   显然,换行符 (2)写入整个文件:
[u]复制代码[/u] 代码如下:
file:write_file(File, IO)
其中IO可以为list、integer或者binary类型 (3)随机写入:
[u]复制代码[/u] 代码如下:
file:pwrite(F, 10, <<"new">>)
[b]4.关闭文件: [/b]
[u]复制代码[/u] 代码如下:
file:close(F).
[b]5.目录操作:= [/b]都是linux命令风格的操作,
[u]复制代码[/u] 代码如下:
cd("/home/dennis/").  %进入目录 file:list_dir(".").   %列出当前目录文件 file:make_dir("test").  %创建test目录 file:del_dir("test").   %删除test目录
[b]6.获取文件信息[/b],比如文件大小,最后修改时间等等。调用file:read_file_info/1方法,该方法返回一个file_info记录类型,里面拥有文件的具体信息,比如type、size等。
[u]复制代码[/u] 代码如下:
{ok, Facts} =file:read_file_info(File). io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).
[b]7.复制和删除文件: [/b]
[u]复制代码[/u] 代码如下:
file:copy(Source, Destination). file:delete(File).
这个笔记仅仅记录了一些常用到的方法,一些高级的工具方法并没有涉及,具体参考Erlang的文档。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部