Erlang程式设计与问题解决/档案
1.打开文件:
{ok,F}=file:open("data1.dat",read). %读模式打开
{ok,F}=file:open("data1.dat",write). %写模式
{ok,F}=file:open("data1.dat",[read,write]). %读、写、二进制模式支持的所有模式参见文档。
2.读取文件:
(1)如果以Erlang term的方式读取,采用: io:read(F,). 这个方法有一个变形read/3 第三个参数用于指定开始行数。
(2)如果是按字节读取,文件必须按raw模式打开采用: {ok, Data}=file:read(F,100).
(3)按行读取: io:get_line(F, ).
(4)读取整个文件的内容: {ok,Binary}=file:read_file("data1.dat"). 注意返回的是一个binary类型
(5)随机读取: {ok,Binary}=file:pread(F, 22, 46). 其中第二个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。
3.写入文件:
(1)采用io:format/3方法:
{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 term
~p 与~w类似,不过当多行时将自动换行
~n 显然,换行符
(2)写入整个文件: file:write_file(File, IO) 其中IO可以为list、integer或者binary类型
(3)随机写入: file:pwrite(F, 10, <<"new">>)
4.关闭文件: file:close(F).