佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Erlang IO編程之文件目錄操作常用方法小結(jié)

Erlang IO編程之文件目錄操作常用方法小結(jié)

熱門(mén)標(biāo)簽:呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 服務(wù)外包 Linux服務(wù)器 AI電銷 地方門(mén)戶網(wǎng)站 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化

Erlang用于操縱文件I/O的模塊有:

file模塊:打開(kāi)、讀、寫(xiě)、關(guān)閉文件已經(jīng)操作目錄的方法基本都在這里

filename模塊:提供平臺(tái)獨(dú)立方式用于操縱文件名

filelib模塊:file模塊的擴(kuò)展,提供了更多的實(shí)用工具,在file模塊基礎(chǔ)上構(gòu)建

io模塊:一系列用于操作打開(kāi)的文件的方法,解析格式、格式化輸出等等。

1.打開(kāi)文件:

復(fù)制代碼 代碼如下:

{ok,F}=file:open("data1.dat",read). %讀模式打開(kāi)
{ok,F}=file:open("data1.dat",write). %寫(xiě)模式
{ok,F}=file:open("data1.dat",[read,write]). %讀、寫(xiě)、二進(jìn)制模式

支持的所有模式參見(jiàn)文檔。

2.讀?。?br /> (1)如果以一個(gè)Erlang term的方式讀取,采用:

復(fù)制代碼 代碼如下:

io:read(F,'').

其中第二個(gè)參數(shù)是提示符,用于在標(biāo)準(zhǔn)輸入時(shí)作為提示。
這個(gè)方法有一個(gè)變形read/3
復(fù)制代碼 代碼如下:

read(IoDevice, Prompt, StartLine)

第三個(gè)參數(shù)用于指定開(kāi)始行數(shù)。

(2)如果是按字節(jié)讀取,文件必須按raw模式打開(kāi)采用:

復(fù)制代碼 代碼如下:

{ok, Data}=file:read(F,100).

(3)按行讀取:
復(fù)制代碼 代碼如下:

io:get_line(F, '').

(4)讀取整個(gè)文件的內(nèi)容:
復(fù)制代碼 代碼如下:

{ok,Binary}=file:read_file("data1.dat").

注意返回的是一個(gè)binary類型

(5)隨機(jī)讀?。?br />

復(fù)制代碼 代碼如下:

{ok,Binary}=file:pread(F, 22, 46).

其中第二個(gè)參數(shù)是開(kāi)始位置,第三個(gè)參數(shù)是讀取的長(zhǎng)度,返回的也是binary類型。

3.寫(xiě)入文件:
(1)采用io:format/3方法:

復(fù)制代碼 代碼如下:

{ok, S} = file:open("test2.dat", write).
io:format(S, "~s~n", ["Hello readers"]).
io:format(S, "~w~n", [123]).

其中的~開(kāi)頭的字符是一個(gè)個(gè)格式化命令,比如常見(jiàn)的:
~c   anscii碼
~f   浮點(diǎn)數(shù)
~s   字符串
~w   Erlang term
~p   與~w類似,不過(guò)當(dāng)多行時(shí)將自動(dòng)換行
~n   顯然,換行符

(2)寫(xiě)入整個(gè)文件:

復(fù)制代碼 代碼如下:

file:write_file(File, IO)

其中IO可以為list、integer或者binary類型

(3)隨機(jī)寫(xiě)入:

復(fù)制代碼 代碼如下:

file:pwrite(F, 10, "new">>)

4.關(guān)閉文件:
復(fù)制代碼 代碼如下:

file:close(F).

5.目錄操作:=
都是linux命令風(fēng)格的操作,
復(fù)制代碼 代碼如下:

cd("/home/dennis/").  %進(jìn)入目錄
file:list_dir(".").   %列出當(dāng)前目錄文件
file:make_dir("test").  %創(chuàng)建test目錄
file:del_dir("test").   %刪除test目錄

6.獲取文件信息,比如文件大小,最后修改時(shí)間等等。調(diào)用file:read_file_info/1方法,該方法返回一個(gè)file_info記錄類型,里面擁有文件的具體信息,比如type、size等。

復(fù)制代碼 代碼如下:

{ok, Facts} =file:read_file_info(File).
io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).

7.復(fù)制和刪除文件:
復(fù)制代碼 代碼如下:

file:copy(Source, Destination).
file:delete(File).

這個(gè)筆記僅僅記錄了一些常用到的方法,一些高級(jí)的工具方法并沒(méi)有涉及,具體參考Erlang的文檔。

標(biāo)簽:衡水 湘潭 崇左 湖南 銅川 仙桃 蘭州 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Erlang IO編程之文件目錄操作常用方法小結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    额尔古纳市| 南召县| 喀喇沁旗| 浮山县| 沐川县| 瓦房店市| 安新县| 阿克苏市| 乌鲁木齐市| 永修县| 韶山市| 庐江县| 安阳市| 宜城市| 天镇县| 北流市| 枣庄市| 十堰市| 新余市| 老河口市| 留坝县| 辽阳市| 临泉县| 肥东县| 佳木斯市| 沽源县| 留坝县| 胶南市| 新绛县| 伊宁县| 瓮安县| 博兴县| 昌江| 荥经县| 达孜县| 密山市| 孟连| 通辽市| 西平县| 阿克| 麻阳|