<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    Erlang之IO編程

    Posted on 2007-09-27 16:03 dennis 閱讀(7942) 評論(2)  編輯  收藏 所屬分類: erlang
    Erlang用于操縱文件I/O的模塊有:
    file模塊:打開、讀、寫、關(guān)閉文件已經(jīng)操作目錄的方法基本都在這里

    filename模塊:提供平臺獨立方式用于操縱文件名

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

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

    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,'').
    其中第二個參數(shù)是提示符,用于在標準輸入時作為提示。
    這個方法有一個變形read/3
    read(IoDevice, Prompt, StartLine)
    第三個參數(shù)用于指定開始行數(shù)。

    (2)如果是按字節(jié)讀取,文件必須按raw模式打開采用:
    {ok, Data}=file:read(F,100).

    (3)按行讀取:
    io:get_line(F, '').

    (4)讀取整個文件的內(nèi)容:
    {ok,Binary}=file:read_file("data1.dat").
    注意返回的是一個binary類型

    (5)隨機讀取:
    {ok,Binary}=file:pread(F, 22, 46).

    其中第二個參數(shù)是開始位置,第三個參數(shù)是讀取的長度,返回的也是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   浮點數(shù)
    ~s   字符串
    ~w   Erlang term
    ~p   與~w類似,不過當多行時將自動換行
    ~n   顯然,換行符

    (2)寫入整個文件:
    file:write_file(File, IO)

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

    (3)隨機寫入:
    file:pwrite(F, 10, <<"new">>)

    4.關(guān)閉文件:
    file:close(F).

    5.目錄操作:
    都是linux命令風格的操作,
    cd("/home/dennis/").  %進入目錄
    file:list_dir(".").   %列出當前目錄文件
    file:make_dir("test").  %創(chuàng)建test目錄
    file:del_dir("test").   %刪除test目錄

    6.獲取文件信息,比如文件大小,最后修改時間等等。調(diào)用file:read_file_info/1方法,該方法返回一個file_info記錄類型,里面擁有文件的具體信息,比如type、size等。
    {ok, Facts} =file:read_file_info(File).
    io:format("~s~n",{Facts#file_info.type, Facts#file_info.size}).

    7.復制和刪除文件:
    file:copy(Source, Destination).
    file:delete(File).

        這個筆記僅僅記錄了一些常用到的方法,一些高級的工具方法并沒有涉及,具體參考Erlang的文檔。





    評論

    # re: Erlang之IO編程  回復  更多評論   

    2007-09-28 16:26 by 千里冰封
    Erlang是什么?JAVA里面的?

    # re: Erlang之IO編程  回復  更多評論   

    2007-09-28 16:41 by dennis
    @千里冰封
    see http://www.erlang.org/
    主站蜘蛛池模板: 亚洲综合综合在线| 少妇太爽了在线观看免费视频| 国产精品成人免费观看| 国产黄色片在线免费观看| 亚洲av无码成人黄网站在线观看 | 亚洲成AⅤ人影院在线观看| 亚洲Av无码专区国产乱码DVD| 国产精品高清视亚洲精品| 成人黄色免费网址| 亚洲依依成人精品| 日韩亚洲国产高清免费视频| 亚洲中文字幕无码一去台湾| 最近中文字幕mv免费高清视频7 | 2020亚洲男人天堂精品| 免费无码AV片在线观看软件| 国产精品亚洲午夜一区二区三区| 国产中文字幕在线免费观看| 亚洲AV日韩AV永久无码下载| 18禁美女黄网站色大片免费观看| 亚洲熟妇少妇任你躁在线观看无码 | 在线精品亚洲一区二区三区| 亚洲欧洲专线一区| 国产精品免费AV片在线观看| 久久亚洲精品无码aⅴ大香| 曰批全过程免费视频在线观看| 亚洲av不卡一区二区三区| 24小时日本电影免费看| 亚洲狠狠色丁香婷婷综合| 亚洲A丁香五香天堂网| 免费国产成人18在线观看| 亚洲a视频在线观看| 国产免费观看a大片的网站| a在线视频免费观看| 亚洲kkk4444在线观看| 亚洲精品免费在线| 国产精品亚洲专区无码唯爱网| 97无码免费人妻超级碰碰碰碰| 亚洲第一精品电影网| 国产又长又粗又爽免费视频 | 手机在线看永久av片免费| 永久免费无码日韩视频|