国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

什么是Windows Phone的獨(dú)立存儲(chǔ)以及獨(dú)立存儲(chǔ)種形式

2020-02-17 16:07:56
字體:
供稿:網(wǎng)友

什么是獨(dú)立存儲(chǔ)

獨(dú)立存儲(chǔ)(isolatedstorage)這個(gè)東西 是首先在SilverLight使用的(好 吧我是因?yàn)閣p才認(rèn)識(shí)獨(dú)立存儲(chǔ)的)

要說明什么是獨(dú)立存儲(chǔ) 首先就說什么是獨(dú)立(isolated) 獨(dú)立就是自個(gè)為一體

獨(dú)立存儲(chǔ)就是 A程序存的東西只能A用 B不能用 相同道理B的東西只能B自 己用A不能訪問

這樣做的很大好處是能提升安全性 哪怕你自個(gè)下載個(gè)病毒那病毒也只能在自個(gè) 的獨(dú)立存儲(chǔ)空間內(nèi)才能形成破壞

由于wp的獨(dú)立存儲(chǔ)其實(shí)是“共享存儲(chǔ)”(大家的獨(dú)立存儲(chǔ)空間 其實(shí)都是共享手機(jī)的那塊內(nèi)存 所謂獨(dú)立只是邏輯上的文件形式獨(dú)立而不是空間的獨(dú)立)

所以wp 手機(jī)就算中毒最壞的情況也只是手機(jī)空間被撐暴而已(自個(gè)理解 歡迎拍磚)

獨(dú)立存儲(chǔ)分2種形 式:

1.文件形式的存儲(chǔ),通過真實(shí)的文件和目錄的形式來創(chuàng)建和管理數(shù)據(jù)

2.設(shè)置的形式 ,通過字典的方式創(chuàng)建鍵值對(duì),可用于保存少量的數(shù)據(jù)(對(duì)于實(shí)現(xiàn)墓碑機(jī)制和諸如軟件的設(shè)置一類的話 這貨挺有用的)

首先說明下獨(dú)立存儲(chǔ)(IsolatedStorage)是位于 System.IO.IsolatedStorage

當(dāng)輸入IsoLatedStorage的時(shí)候智能提示會(huì)有4個(gè)跟獨(dú)立存儲(chǔ)有關(guān)的 。。。這個(gè)應(yīng)該叫選項(xiàng)還是選擇呢?

其中第一個(gè)IsolatedStorageException是獨(dú)立存儲(chǔ)的異常錯(cuò)誤

第二個(gè)就是用來創(chuàng)建和 管理文件的

第三個(gè)則主要是用于讀取,將獨(dú)立存儲(chǔ)里存儲(chǔ)的文件已流的形式讀取出來(此類繼 承自FileStream,大部分情況下適用與FileStream的都可以兼容這貨)

第四個(gè)則是以設(shè)置的形 式獲得獨(dú)立存儲(chǔ)區(qū)。。(就像剛才說的獨(dú)立存儲(chǔ)的2種形式的第二種)

異常沒什么好說的 重點(diǎn) 說第二跟第四個(gè) 也就是IsolatedStorageFile 和 IsolatedStorageSettings

IsolatedStorageFile

?

先說如何在獨(dú)立存儲(chǔ)里創(chuàng)建一個(gè)名叫 hello.txt且里面寫著hello的文本文檔。。

要在獨(dú)立存儲(chǔ)區(qū)里新建一個(gè)文件 首先要先獲得該軟 件(一說用戶)所擁有的獨(dú)立存儲(chǔ)區(qū)

var appStorage = IsolatedStorageFile.GetUserStoreForApplication();

(。。。第一次寫帶代碼的博客 不會(huì) 高亮顯示關(guān)鍵字。。。如何弄呢? HTML代碼看著蛋疼啊。。。)

然后創(chuàng)建該文件

var fileName = appStorage.OpenFile(“hello.txt”,FileMode.OpenOrCreate)

對(duì)于這句代碼可能 會(huì)有疑問,不是說好的創(chuàng)建嗎? 怎么是OpenFIle的?而且appStorage里也有個(gè)CreateFile的方法啊

說到這個(gè)請(qǐng)注意代碼的后半段,F(xiàn)ileMode.OpenOrCreate ?雖說我是用了 OpenFile這個(gè)沒錯(cuò),不過有FileMode在。。。

OpenOrCreate意味著如果文件當(dāng)前存在,則讀取 文件,假如不存在,就新建一個(gè),不過這是在你可能擁有文件的前提下才用OpenFile會(huì)比較科學(xué),如果 死都要?jiǎng)?chuàng)建新文件的話

如果直接用CreateFIle的話,假如當(dāng)前獨(dú)立存儲(chǔ)區(qū)已經(jīng)有了該文件會(huì)報(bào) Exception的

科學(xué)的做法是要先確定文件是否存在,如果存在則刪除在創(chuàng)建(懶了。。直接貼我 自己寫的代碼的圖吧)

好了 現(xiàn)在已經(jīng)有了那個(gè)文件了 如何向里面寫入數(shù)據(jù)呢 這個(gè)的話個(gè)正常 的其他c#的io操作差不多,直接用StreamWriter就ok了

StreamWriter sw = new StreamWriter (fileName);

sw.WriteLine("hello");

自此就已經(jīng)完成任務(wù)啦,在獨(dú)立存儲(chǔ) 區(qū)里創(chuàng)建了一個(gè)叫 hello.txt的文件且里面寫有hello

另外稍微注意的是獨(dú)立存儲(chǔ)是屬于非托管 資源 所以其需要手動(dòng)釋放(想問為什么??跟Stream為什么需要手動(dòng)釋放同道理,非托管的不被CLR管 理)

典型的辦法最好是新建獨(dú)立存儲(chǔ)的時(shí)候用一個(gè)using語句圍起來 這樣可以避免忘記 Dispose

另外可能有人問 我存進(jìn)去了那怎么讀出來呢?基本步驟差不多(我都用了OpenFile了 ,其實(shí)就是為了方便,讀寫一體化)

然后StreamWriter換成StreamReader讀出里面的流即可

IsolaterStorageSettings

這個(gè)東西會(huì)在獨(dú)立存儲(chǔ)區(qū)內(nèi)以字典的形式保存數(shù)據(jù)

感 覺好像是存在一個(gè)叫 __ApplicationSettings 的文件里(不知道正確與否 但是用上了Settings的話好 像就鐵定會(huì)多出這個(gè)文件)

也通過例子來說話

這次的目標(biāo)是在獨(dú)立存儲(chǔ)區(qū)保存一個(gè)鍵為 "hello”值為"everyone”

首先也要跟File那個(gè)差不多獲取當(dāng)前軟件內(nèi)所擁有的獨(dú)立 存儲(chǔ)區(qū) 不過這次獲得的是Settings而不是File了(畢竟我們是要保存到Settings而不是以真實(shí)文件形 式保存)

IsolatedStorageSettings setting = IsolatedStorageSettings.ApplicationSettings;

獲取之后其實(shí)就可以很簡單的

setting[“鍵的名稱"]=值

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 虹口区| 竹山县| 闽侯县| 扎囊县| 搜索| 贵南县| 休宁县| 深水埗区| 叶城县| 旺苍县| 丰县| 台安县| 亳州市| 霞浦县| 青州市| 疏勒县| 慈溪市| 大新县| 绥滨县| 兖州市| 西昌市| 玉门市| 新源县| 景泰县| 富宁县| 昌黎县| 湟源县| 措勤县| 桦南县| 普兰县| 乌兰察布市| 张家川| 九江市| 柏乡县| 剑河县| 涞水县| 鱼台县| 铜陵市| 双牌县| 沙坪坝区| 区。|