• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            我自閑庭信步,悠然自得,不亦樂乎.

                                                   ------ Keep life simple
            GMail/GTalk/MSN:huyi.zg@gmail.com

             

            關(guān)于文件操作的封裝處理

            File類本身并不持有文件句柄,它只是集中了一系列對文件的操作方法,如Create,Open等等。這些方法全部都是靜態(tài)的,也不進(jìn)行任何的安全檢測,僅僅是直接調(diào)用pspsdk來完成任務(wù),如果出現(xiàn)錯誤,則返回負(fù)值。
            File的Open等方法可以創(chuàng)建針對指定文件讀寫的流對象FileStream,句柄由FileStream自己創(chuàng)建和持有管理,F(xiàn)ile::Open只是傳達(dá)路徑信息。
            可以把File看作是一個門面,集中了對文件的所有操作,并且不需要創(chuàng)建File對象就可以直接執(zhí)行這些操作。所以說File為文件的單一操作提供了快捷簡便的方式。
            除了幾個創(chuàng)建FileStream流的操作外,其他操作都不會長期占用句柄資源,遵循"句柄創(chuàng)建-執(zhí)行具體操作-釋放句柄"的步驟。

            如果需要頻繁的操作文件,則需要一個類來長期持有句柄,避免經(jīng)常性的打開和關(guān)閉文件,故此引入FileInfo類。FileInfo執(zhí)行Append等操作時,都是使用事先打開的文件句柄。
            同時,F(xiàn)ileInfo也可以創(chuàng)建FileStream實(shí)例,但這個時候,文件的句柄生命周期應(yīng)該由FileInfo來管理,F(xiàn)ileStream可以使用這個句柄,但不能結(jié)束其生命周期,F(xiàn)ileStream::Close()方法僅僅使這個流處于關(guān)閉(不可讀寫)狀態(tài),但并不實(shí)際關(guān)閉文件句柄。
            這種情況下,F(xiàn)ileInfo所創(chuàng)建的FileStream::Close()的行為和前面File所創(chuàng)建的FileStream::Close()行為有差異。因?yàn)镕ile并不持有句柄,所以它創(chuàng)建了FileStream對象后,句柄應(yīng)該由FileStream來管理。但FileInfo所創(chuàng)建的FileStream是使用的FileInfo所創(chuàng)建好的句柄,所以它并不對此句柄負(fù)責(zé)。

            實(shí)現(xiàn)策略:
            1.使用基于繼承的多態(tài)或基于模板的靜多態(tài)。
            2.使用函數(shù)回調(diào)。把Close做成調(diào)用函數(shù)指針,通過不同的FileStream構(gòu)造函數(shù)調(diào)用,來設(shè)置指針指向不同的Close函數(shù)實(shí)現(xiàn)。(關(guān)閉句柄或不關(guān)閉句柄)
            這兩種做法的優(yōu)劣性正在考證中,請?zhí)岢鲆庖姟?


            補(bǔ)充:File和FileInfo的關(guān)系在dotnet中也有體現(xiàn),不過他們主要是從錯誤檢測方面考慮。
            最終的目的是要為客戶提供一個統(tǒng)一的界面,所以不能用太復(fù)雜的模板。

            經(jīng)過慎重考慮,我還是決定用虛函數(shù),放棄了模板。

            posted on 2006-10-14 16:45 HuYi 閱讀(1125) 評論(0)  編輯 收藏 引用 所屬分類: 開發(fā)點(diǎn)滴

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(12)

            隨筆分類

            相冊

            收藏夾

            友情鏈接

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲人成网站999久久久综合| 成人国内精品久久久久一区| 久久久人妻精品无码一区| 久久国产精品无码网站| 日韩人妻无码精品久久免费一| 久久国产精品久久国产精品| 亚洲精品美女久久久久99小说| 亚洲欧美日韩中文久久| 久久精品国产一区二区电影| 亚洲欧美日韩中文久久| 人妻中文久久久久| 日本精品久久久久中文字幕| 久久夜色精品国产噜噜麻豆| 久久综合久久鬼色| 亚洲国产精久久久久久久| 蜜臀久久99精品久久久久久小说| 久久e热在这里只有国产中文精品99| 久久国产精品成人片免费| 一级A毛片免费观看久久精品| 久久国产精品久久久| 久久99精品久久久久久hb无码| 久久这里的只有是精品23| 久久九九免费高清视频| 99久久免费国产精品| 人人狠狠综合久久亚洲婷婷| 久久久女人与动物群交毛片| 久久亚洲AV成人无码| 亚洲国产成人久久综合一区77| 国产A级毛片久久久精品毛片| 久久精品成人免费网站| av无码久久久久不卡免费网站| 久久午夜羞羞影院免费观看| 久久人妻少妇嫩草AV无码专区| 久久精品国产男包| 亚洲乱码精品久久久久..| 欧美激情一区二区久久久| 久久精品免费一区二区| 色婷婷综合久久久久中文一区二区 | 中文字幕无码av激情不卡久久| 精品国产综合区久久久久久| 日韩久久久久中文字幕人妻|