• <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)錯(cuò)誤,則返回負(fù)值。
            File的Open等方法可以創(chuàng)建針對指定文件讀寫的流對象FileStream,句柄由FileStream自己創(chuàng)建和持有管理,F(xiàn)ile::Open只是傳達(dá)路徑信息。
            可以把File看作是一個(gè)門面,集中了對文件的所有操作,并且不需要?jiǎng)?chuàng)建File對象就可以直接執(zhí)行這些操作。所以說File為文件的單一操作提供了快捷簡便的方式。
            除了幾個(gè)創(chuàng)建FileStream流的操作外,其他操作都不會(huì)長期占用句柄資源,遵循"句柄創(chuàng)建-執(zhí)行具體操作-釋放句柄"的步驟。

            如果需要頻繁的操作文件,則需要一個(gè)類來長期持有句柄,避免經(jīng)常性的打開和關(guān)閉文件,故此引入FileInfo類。FileInfo執(zhí)行Append等操作時(shí),都是使用事先打開的文件句柄。
            同時(shí),F(xiàn)ileInfo也可以創(chuàng)建FileStream實(shí)例,但這個(gè)時(shí)候,文件的句柄生命周期應(yīng)該由FileInfo來管理,F(xiàn)ileStream可以使用這個(gè)句柄,但不能結(jié)束其生命周期,F(xiàn)ileStream::Close()方法僅僅使這個(gè)流處于關(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),不過他們主要是從錯(cuò)誤檢測方面考慮。
            最終的目的是要為客戶提供一個(gè)統(tǒng)一的界面,所以不能用太復(fù)雜的模板。

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

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

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類

            相冊

            收藏夾

            友情鏈接

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            2022年国产精品久久久久| 久久婷婷五月综合成人D啪| 久久这里只有精品18| 久久综合亚洲欧美成人| AV无码久久久久不卡蜜桃| 品成人欧美大片久久国产欧美| 久久久久一本毛久久久| 久久久无码精品亚洲日韩京东传媒 | 99久久人妻无码精品系列| 国产精品无码久久四虎| 久久久久久久精品成人热色戒| 久久97精品久久久久久久不卡| 2021国内精品久久久久久影院| 色综合久久无码中文字幕| 久久亚洲欧洲国产综合| 久久男人Av资源网站无码软件| 久久综合伊人77777| 69久久精品无码一区二区| 怡红院日本一道日本久久 | 国产精品亚洲综合久久 | 精品久久久久久无码中文字幕一区| 精品一区二区久久| 亚洲va久久久噜噜噜久久天堂| 99久久99久久精品国产片果冻| 性做久久久久久久久| 国产日韩久久久精品影院首页| 久久久精品人妻一区二区三区蜜桃 | 亚洲色大成网站www久久九| 国内精品久久久久久久亚洲| 色综合久久无码五十路人妻| 中文字幕无码av激情不卡久久| 精品久久久久久无码人妻热| 国产一区二区精品久久| 久久久久亚洲精品无码蜜桃| 久久久久人妻一区二区三区vr | 一本久久知道综合久久| 一级做a爰片久久毛片免费陪| 久久久久婷婷| 久久强奷乱码老熟女| 性高朝久久久久久久久久| 少妇久久久久久被弄到高潮|