資源描述:
《Android的數(shù)據(jù)存儲(chǔ)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Android的數(shù)據(jù)存儲(chǔ)導(dǎo)入:應(yīng)用程序的參數(shù)設(shè)置,程序運(yùn)行狀態(tài)數(shù)據(jù)這些都需要保存在外部存儲(chǔ)器上,這樣系統(tǒng)關(guān)機(jī)之后數(shù)據(jù)才不會(huì)丟失。少量數(shù)據(jù)通過普通文件;大量數(shù)據(jù)放在SD卡上或者通過數(shù)據(jù)庫SQLite。一、SharedPreferences與edit少量數(shù)據(jù),格式簡單,比如程序的配置信息,是否打開音效、震動(dòng)、積分。1.SharedPreferences保存的數(shù)據(jù)主要是類似于配置信息格式的數(shù)據(jù),保存的數(shù)據(jù)主要是簡單類型的key-value對。該接口主要負(fù)責(zé)讀取應(yīng)用程序的Preferences數(shù)據(jù),提供
2、了下列方法:lbooleancontains(Stringkey):判斷Preferences是否包含特定key的數(shù)據(jù)labstractMapgetAll():獲取Preferences數(shù)據(jù)里的全部key-value對lBooleangetXxx(Stringkey,xxxdefValue):獲取Preferences數(shù)據(jù)里指定key對應(yīng)的value。如果key不存在,返回默認(rèn)值defValue。其中xxx可以是boolean、float、int、long、String等各種
3、數(shù)據(jù)類型2.SharedPreferences接口本身沒有提供寫入數(shù)據(jù)的能力,而是通過SharedPreferences的內(nèi)部接口,SharedPreferences調(diào)用edit()方法即可獲取它所對應(yīng)的Editor對象。Editor對象提供了如下方法來向SharedPreferences寫入數(shù)據(jù):lSharedPreferences.Editorclear():清空SharedPreferences里的所有數(shù)據(jù)lSharedPreferences.EditorputXxx(Stringkey,
4、xxxvalue):向SharedPreferences存入指定key對應(yīng)的數(shù)據(jù)。其中xxx可以是boolean、float、int、long、String等各種數(shù)據(jù)類型lSharedPreferences.Editorremove(Stringkey):刪除SharedPreferences里指定的key對應(yīng)的數(shù)據(jù)項(xiàng)。lbooleancommit():當(dāng)Editor編輯完成后,調(diào)用該方法提交修改。3.SharedPreferences本身是一個(gè)接口,無法直接創(chuàng)建SharedPreference
5、s實(shí)例,只能通過Context提供的getSharedPreferences(Stringname,intmode)方法來獲取SharedPreferences實(shí)例。該方法的第二個(gè)參數(shù)支持如下幾個(gè)值:lContext.MODE_PRIVATE:指定該SharedPreferences數(shù)據(jù)只能被本應(yīng)用程序讀寫。lContext.MODE_WORLD_READABLE:指定該SharedPreferences的數(shù)據(jù)能被其它應(yīng)用程序讀,但不能寫lContext.MODE_WORLD_WRITEABLE
6、:指定該SharedPreferences的數(shù)據(jù)能被其它應(yīng)用程序讀寫【例題:】SharedPreferences存儲(chǔ)位置和格式1)SharedPreferencesWrite2)SimpleSharedPreferences【例題:】記錄應(yīng)用程序的使用次數(shù)1)UseCount【例題:】讀寫其它應(yīng)用程序的SharedPreferences1)ReadOtherPreferences二、File存儲(chǔ)IO流體系存儲(chǔ)數(shù)據(jù)1.openFileOutput和openFileInputContext提供了如下
7、兩個(gè)方法來打開本應(yīng)用程序數(shù)據(jù)文件夾里的IO流lFileInputStreamopenFileInput(Stringname):打開應(yīng)用程序的數(shù)據(jù)文件夾下的name文件對應(yīng)輸入流lFileOutputStreamopenFileOutput(Stringname,intmode):打開應(yīng)用程序的數(shù)據(jù)文件夾下的name文件對應(yīng)輸出流。10第二個(gè)方法的第二個(gè)參數(shù)指定打開文件的模式,該模式支持如下值:MODE_PRIVATE:MODE_APPEND:追加方式打開文件,可以向文件中追加內(nèi)容MODE_WO
8、RLD_READABLE:MODE_WORLD_WRITEABLE:2.Context提供了訪問應(yīng)用程序的數(shù)據(jù)文件夾的方法訪問數(shù)據(jù)文件夾相關(guān)方法:lgetDir(Stringname,intmode):在應(yīng)用程序文件夾下獲取或創(chuàng)建name對應(yīng)的子目錄lFilegetFilesDir():獲取應(yīng)用程序文件夾的絕對路徑lString[]fileList():返回該應(yīng)用程序的數(shù)據(jù)文件夾下的全部文件ldeleteFile(String):刪除該應(yīng)用程序的數(shù)據(jù)文件夾下指定的文件3.讀寫SD卡上的文件為了更