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).