Android中Sharedreferences與文件操作_第1頁
Android中Sharedreferences與文件操作_第2頁
Android中Sharedreferences與文件操作_第3頁
Android中Sharedreferences與文件操作_第4頁
Android中Sharedreferences與文件操作_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

SharedPreferences與文件存儲張帆SharedPreferences不同應(yīng)用共享數(shù)據(jù)Android文件操作SDCard文件存取課程安排SharedPreferences存儲到文件SQLite數(shù)據(jù)庫內(nèi)容提供者(Contentprovider)存儲到網(wǎng)絡(luò)服務(wù)器Android數(shù)據(jù)存儲方式如何保存軟件配置參數(shù):Window:采用ini文件進(jìn)行j2se應(yīng)用:采用properties屬性文件Android平臺提供一個(gè)SharedPreferences類,它是一個(gè)輕量級的存儲類,適合用于保存軟件配置參數(shù)。使用SharedPreferences保存數(shù)據(jù),其背后是用xml文件存放數(shù)據(jù),文件存放在/data/data/<packagename>/shared_prefs目錄下SharedPreferencesSharedPreferences接口主要負(fù)責(zé)讀取應(yīng)用程序的Preferences數(shù)據(jù),它提供了如下常用方法來訪問SharedPreferences的key_value鍵值對。SharedPreferences接口方法名稱描述publicabstractbooleancontains(Stringkey)判斷SharedPreferences是否包含特定key的數(shù)據(jù)publicabstractSharedPreferences.Editoredit()返回一個(gè)Edit對象用于操作SharedPreferencespublicabstractMap<String,?>getAll()獲取SharedPreferences數(shù)據(jù)里全部的key-value對getXXX(Stringkey,XXXdefvlaue)獲取SharedPreferences數(shù)據(jù)指定key所對應(yīng)的value,如果該key不存在,返回默認(rèn)值defValue。其中XXX可以是boolean、float、int、long、String等基本類型的值由于SharedPreference是一個(gè)接口,而且在這個(gè)接口里并沒有提供寫入數(shù)據(jù)和讀取數(shù)據(jù)的能力。但是在其內(nèi)部有一個(gè)Editor內(nèi)部的接口,Edit這個(gè)接口有一系列的方法用于操作SharedPreference。Editor接口方法名稱描述publicabstractSharedPreferences.Editorclear()清空SharedPreferences里所有的數(shù)據(jù)publicabstractbooleancommit()當(dāng)Editor編輯完成后,調(diào)用該方法可以提交修改,而且必須要調(diào)用這個(gè)數(shù)據(jù)才修改publicabstractSharedPreferences.EditorputXXX(Stringkey,booleanXXX)向SharedPreferences存入指定的key對應(yīng)的數(shù)據(jù),其中XXX可以是boolean、float、int、long、String等基本類型的值publicabstractSharedPreferences.Editorremove(Stringkey)刪除SharedPreferences里指定key對應(yīng)的數(shù)據(jù)項(xiàng)SharedPreferencessharedPreferences=getSharedPreferences("lxt008",Context.MODE_PRIVATE);Editoreditor=sharedPreferences.edit();//獲取編輯器editor.putString("name","lxt");editor.putInt("age",35);mit();//提交修改生成的lxt008.xml文件內(nèi)容如下:<?xmlversion=“1.0”encoding=“utf-8”standalone=“yes”?><map><stringname="name">lxt</string><intname="age"value=“30"/></map>SharedPreferences存儲數(shù)據(jù)getSharedPreferences(na,memode)方法參數(shù)1:指定該文件名稱,名稱不用帶后綴。參數(shù)2:指定文件的操作模式,共有四種操作模式。Context.MODE_PRIVATE:為默認(rèn)操作模式,代表該文件是私有數(shù)據(jù),只能被應(yīng)用本身訪問,在該模式下,寫入的內(nèi)容會(huì)覆蓋原文件的內(nèi)容,如果想把新寫入的內(nèi)容追加到原文件中。可以使用Context.MODE_APPENDContext.MODE_APPEND:模式會(huì)檢查文件是否存在,存在就往文件追加內(nèi)容,否則就創(chuàng)建新文件。Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應(yīng)用是否有權(quán)限讀寫該文件。MODE_WORLD_READABLE:表示當(dāng)前文件可以被其他應(yīng)用讀取;MODE_WORLD_WRITEABLE:表示當(dāng)前文件可以被其他應(yīng)用寫入。getPreferences(mode)方法操作SharedPreferences,這個(gè)方法默認(rèn)使用當(dāng)前類不帶包名的類名作為文件的名稱。SharedPreferences操作模式訪問SharedPreferences中的數(shù)據(jù)代碼如下:SharedPreferencessharedPreferences=getSharedPreferences("lxt008",Context.MODE_PRIVATE);//getString()第二個(gè)參數(shù)為缺省值,如果preference中不存在該key,將返回缺省值Stringname=sharedPreferences.getString("name","");intage=sharedPreferences.getInt("age",1);訪問SharedPreferences數(shù)據(jù)SharedPreferences不同應(yīng)用共享數(shù)據(jù)Android文件操作SDCard文件存取課程安排其他應(yīng)用要訪問上面應(yīng)用的preference,首先需要?jiǎng)?chuàng)建上面應(yīng)用的Context,然后通過Context訪問preference,訪問preference時(shí)會(huì)在應(yīng)用所在包下的shared_prefs目錄找到preference:ContextotherAppsContext=createPackageContext(“com.test",Context.CONTEXT_IGNORE_SECURITY);SharedPreferencessharedPreferences=otherAppsContext.getSharedPreferences(“test",Context.MODE_WORLD_READABLE);Stringname=sharedPreferences.getString("name","");intage=sharedPreferences.getInt("age",0);訪問其他應(yīng)用SharedPreferences數(shù)據(jù)SharedPreferences不同應(yīng)用共享數(shù)據(jù)Android文件操作SDCard文件存取課程安排文件可以存儲比使用引用更大數(shù)量的數(shù)據(jù)Android提供方法來讀、寫文件只有本地文件可以被訪問優(yōu)點(diǎn):可以存儲大容量的數(shù)據(jù)缺點(diǎn):文件更新或是格式改變可能會(huì)導(dǎo)致巨大的編程工作文件存儲Java提供了一套完整的IO流體系,用來對文件進(jìn)行操作。Android同樣支持以這種方式來訪問手機(jī)存儲器上的文件,包括內(nèi)部存儲器和外部存儲器

Android中可以在設(shè)備本身的存儲設(shè)備或者外接的存儲設(shè)備中創(chuàng)建用于保存數(shù)據(jù)的文件。默認(rèn)情況下,文件是不能在不同的程序間共享的。當(dāng)該應(yīng)用程序卸載時(shí),這些文件將被刪除掉。Android中的兩種文件操作方式:第一種方式類似于Java平臺下的實(shí)現(xiàn)方式,直接根據(jù)路徑操作IO流來存儲數(shù)據(jù)。第二種方式,使用Context提供的方法來直接操作Context.openFileInput(Stringname)打開一個(gè)與應(yīng)用程序聯(lián)系的私有文件輸入流當(dāng)文件不存在時(shí)拋出FileNotFoundExceptionFileInputStreamin=this.openFileInput("test.txt");//打開文件"test.txt"……in.close();//關(guān)閉輸入流JavaIO讀文件操作//

讀取文件內(nèi)容

private

String

readFiles()

{

String

content

=

null;

try

{

FileInputStream

fis

=

openFileInput(FILENAME);

ByteArrayOutputStream

baos

=

new

ByteArrayOutputStream();

byte[]

buffer

=

new

byte[1024];

int

len

=

0;

while

((len

=

fis.read(buffer))

!=

-1)

{

baos.write(buffer,

0,

len);

}

content

=

baos.toString();

fis.close();

baos.close();

}

catch

(Exception

e)

{

e.printStackTrace();

}

return

content;

}

Co魯nt均ex凳t.盾op貼en虧Fi箭le伙Ou卡tp筑ut盛(S事tr侍in浙g意na愿me派,i脈nt填m利od蠅e)開啟械一個(gè)鉆與應(yīng)膽用程澇序聯(lián)晶系的助私有嘆文件回輸出殘流當(dāng)文歸件不收存在桶時(shí)該壁文件氧將被型創(chuàng)建文件槍輸出堡流可毛以在逝添加律模式猾中打脅開,塘這意蠢味新集的數(shù)惰據(jù)將捆被添左加到屢文件氏的末祝尾Fi切l(wèi)e都Ou供tp納ut芒St造re傾am修o桂ut頭=爸t駱hi液s.躍op怠en棵Fi尖le愉Ou蓬tp它ut疊("衛(wèi)te臥st穿2.換tx成t"勸,M死OD醬E_長AP毯PE役ND砌);//打開化文件"t癢es益t2昏.t語xt壁"進(jìn)行越寫操棵作、朱使用MO蠅DE嘴_A瞞PP湯EN注D在添電加模拼式中證打開絕文件……ou蝕t.縱cl磨os袖e(世);燒//關(guān)閉亡輸出深流Ja勵(lì)va招I質(zhì)O寫文寶件操征作//保存位文件鵲內(nèi)容pr漿iv頭at疊evo距idwr村it崗eF幕il覆es送(S痛tr尸in湯g聾co他nt粘en頂t)愛{tr厚y{//打開卷文件手獲取樣輸出狼流,鋸文件瞎不存聾在則景自動(dòng)糠創(chuàng)建Fi稼le鴿Ou石tp輩ut劃St虹re族am仔f久os絲式=互o義pe定nF煎il爪eO琴ut跨pu何t(治FI控LE紫NA約ME筍,Co屠nt永ex登t.蒜MO殺DE律_P炕RI碰VA監(jiān)TE偽);fo富s.音wr狗it效e(運(yùn)co維nt罰en賊t.鉤ge叛tB擔(dān)yt桌es燒()劫);fo拾s.輸cl稱os艘e(堂);}ca劃tc蚊h(E來xc瀉ep傾ti憤on上e燥)籍{e.蝕pr蒼in猴tS閃ta學(xué)ck這Tr現(xiàn)ac燃e(艦);}}使用Co框nt先ex仰t進(jìn)行扎文件房誠存儲Co意nt翼ex洪t提供了op名en對Fi勤le忠Ou冷tp崗ut呀()方法捕可以勺用于神把數(shù)查據(jù)輸擋出到筐文件可中,脖具體笑的實(shí)臨現(xiàn)過萍程與宣在J2芽SE環(huán)境愛中保悄存數(shù)襯據(jù)到祖文件運(yùn)中是美一樣胸的。pu罪bl義ic癥c礦la北ss脹F計(jì)il運(yùn)eA狐c(diǎn)t桌iv載it宵y航ex艦te饅nd印s扮Ac禿ti豬vi有ty敬{@O危ve隙rr咸id跑e蠟pu隸bl礙ic壓v艇oi墻d賊on洞Cr皮ea謊te懲(B呀un問dl譽(yù)e慮sa落ve逢dI蹦ns欺ta討nc濾eS摘ta鹽te雕)耐{..才.Fi粒le裁Ou達(dá)tp分ut搭St博re闖am濁o偏ut糾St掠re會(huì)am拳=享t騎hi憐s.己op阻en氣Fi辛le武Ou帆tp狹ut(“書te腰st己.t執(zhí)xt",副C股on孔te滲xt巧.M思OD伍E_賢PR戒IV窄AT判E)裁;ou標(biāo)tS喝tr射ea吸m.憐wr叼it精e(“寨zf若".ge膝tB醒yt取es欄()床);ou籠tS鋪tr誓ea地m.追cl次os巖e(姐);}}op括en熔Fi季le腐Ou虧tp切ut柿()方法狂的第源一參室數(shù)用館于指碗定文滋件名待稱,浸不能粉包含鄭路徑鵝分隔完符“/”,如常果文警件不溪存在麥,An鞠dr肥oi裕d會(huì)自難動(dòng)創(chuàng)解建它翁。創(chuàng)慶建的望文件孝保存昌在/d面at兆a/粗da匠ta把/<漂pa滅ck駕ag現(xiàn)e兆na陣me介>/賠fi壤le跡s目錄折,如:/da爆ta優(yōu)/d膛at舍a/苦co怎m.襲te抗st吃/f脾il狂es沸/t最es咳t.格tx輕t,通州過點(diǎn)仔擊Ec列l(wèi)i攪ps袋e菜單脆“Wi款nd燦ow叢”-納“S宗ho歲w廚Vi置ew覆”-厭“O泛th性er課”,在他對話謹(jǐn)窗口召中展倒開an愚dr蠅oi鏈d文件黎夾,創(chuàng)選擇錯(cuò)下面香的Fi命le蛛E鬼xp杠lo什re賀r視圖竭,然雄后在Fi隆le芽E倒xp功lo加re繼r視圖遼中展冠開/d沫at及a/斧da船ta蟻/<搭pa新ck掉ag喇e膽na鵝me傅>/撒fi悄le趴s目錄河就可霧以看土到該計(jì)文件萬。使用Co固nt許ex敏t進(jìn)行呢文件割存儲op頂en公Fi妨le造Ou遭tp討ut()方法垃的第鬼二參憶數(shù)用賀于指鹽定操尋作模旦式,殼有四仔種模伸式,宣分別寇為:Co獵nt燙ex陷t.刻MO牛DE振_P件RI以VA下TE傅=頃0為默殃認(rèn)操翻作模赴式,邀代表運(yùn)該文爬件是貓私有懷數(shù)據(jù)毯,只充能被膏應(yīng)用鉆本身帆訪問先,在此該模采式下橡,寫桑入的倒內(nèi)容柳會(huì)覆誕蓋原喜文件暢的內(nèi)畢容,鐵如果頓想把腫新寫闖入的木內(nèi)容兆追加伏到原弱文件座中。石可以菠使用Co炊nt說ex杰t.緞MO懷DE鄰_A援PP改EN輔DCo壤nt尤ex到t.吼MO舌DE鋤_A律PP孤EN尿D=凍32號76威8模式棗會(huì)檢御查文演件是飛否存俱在,秋存在陰就往麥文件鄉(xiāng)豐追加兇內(nèi)容鏡,否抽則就騙創(chuàng)建臣新文銹件。Co遲nt繩ex氧t.將MO懼DE別_W灣OR庸LD市_R威EA凈DA勿B(yǎng)L看E=綿1表示那當(dāng)前澆文件某可以杠被其目他應(yīng)艷用讀取Co席nt戀ex赴t.鋤MO樂DE挺_W窩OR捷LD以_W腥RI沒TE登AB第LE=耐2表示亦當(dāng)前見文件曾可以粒被其文他應(yīng)牲用寫宴入使用Co邁nt憶ex蛙t讀取遙文件如果另要打胞開存搏放在/d夸at幟a/秧da協(xié)ta憤/<真pa餡ck漂ag現(xiàn)e災(zāi)na曾me扭>/刪fi肝le席s目錄乓應(yīng)用月私有頸的文任件,銳可以使用Co煉nt紅ex伯t提供op暈en徒Fi便le原In氏pu童t(李)方法醉。Fi阿le望In鈔pu貿(mào)tS矛tr趁ea備m洪in裹St應(yīng)re滋am定=壯t爽hi額s.任ge唱tC響on杠te脈xt乎()會(huì).o霞pe岡nF范il錘eI煩np類ut降(“刑lx茅t0蒙08五.t豪xt迷")重;Lo擊g.畢i(妨"F畏il忌eT突es晶t"態(tài),姜re柳ad摩In墻St魚re粒am仿(i盟nS氣tr引ea話m)寶);re苗ad森In痕St乳re葡am旨()的方花法請舞看本訓(xùn)頁下存面?zhèn)浯u注?;蛘呔碇苯訑_使用濕文件兔的絕援對路聾徑:Fi懷le轎f園il竿e波=牢ne雷w族Fi掩le測("敬/da肌ta敲/d茫at屠a/co膝m.酒te仔st/f飯il漁es融/l蕉xt太00荷8.昂tx攀t")饞;Fi糊le舌In輩pu膀tS稼tr念ea咬m勿in鵲St暈re董am疑=拜n撲ew茄F康il谷eI強(qiáng)np蒙ut狗St哲re哄am夜(f泊il聾e)通;Lo膚g.材i(沃"F廚il水eT竄es府t"竟,蜻re如ad欄In什St就re礦am俗(i下nS子tr冬ea疾m)龜);注意垂:上袖面文研件路添徑中辰的“co持m.色te皮st欣”為應(yīng)語用所耐在包算,應(yīng)北替換排為你差自己番應(yīng)用沃使用察的包虹。對于鈔私有舟文件攤只能桐被創(chuàng)朽建該落文件裂的應(yīng)柜用訪度問,載如果績希望什文件匹能被查其他騰應(yīng)用斯讀和晶寫,倆可以桶在創(chuàng)悉建文場件時(shí)與,指也定Co任nt遮ex太t.輛MO咱DE帆_W涂OR應(yīng)LD梳_R攻EA賤DA溫BL緩E和Co嶼nt誘ex犁t.運(yùn)MO紋DE承_W動(dòng)OR咱LD加_W只RI費(fèi)TE截AB債LE權(quán)限給。Ac儉ti誼vi絞ty還提騾供了ge文tC溉ac哈he規(guī)Di唱r(雕)和ge番tF扮il醋es元Di繡r(瓶)方法橋:ge洞tC晃ac鵝he題Di趕r(京)方法翼用于幫獲取/d涉at直a/棕da眉ta玩/<蛋pa袖ck保ag怎e歸na溫me西>/律ca傷ch使e目錄ge黨tF概il收es志Di泥r(皆)方法炊用于傲獲取/d袋at場a/詢da供ta惕/<判pa存ck毒ag糖e暴na北me雙>/醒fi坐le荷s目錄讀取Re瞧so艱ur晝ce扇s和As慘se浴ts中的屑文件在An伏dr虹oi困d中,握除了糠對應(yīng)寶用程切序私某有文言件夾火中的僵文件耍進(jìn)行假操作革之外鍋,還親可以蠢從資蕩源文柱件和As襯se個(gè)ts中獲領(lǐng)得輸?shù)肓麟x讀取淚數(shù)據(jù)安。這咳些文牙件分慘別存插放在忽應(yīng)用剖程序綁的re泛s/匙ra居w目錄杯和as灑se鬼ts目錄央下。自這些牽文件插將在漆編譯歲的時(shí)選候和峽其他控文件坊一起波打包倡進(jìn)AP換K中。注意蓮,這馳兩個(gè)邊文件說夾下鑄的文診件只然能進(jìn)溜行讀輩操作層,不薄能進(jìn)歇行寫壤操作。1.讀取re渴s/令ra榮w下的紋文件舅資源佩,通涼過以覆下方分式獲辱取輸遠(yuǎn)入流扮來進(jìn)舒行寫操作In松pu夜tS泥tr慕ea翻mis女=誼g慣et氧Re做so邀ur伙ce絡(luò)s(會(huì)).母op定en龜Ra酬wR禍es戀ou迎rc御e(辨R.賭id譽(yù).f朗il滋en貪am代e)影;2.讀取as猛se普ts下的捧文件蕉資源霞,通候過以窗下方恭式獲利取輸般入流存來進(jìn)崇行寫操作As湖se防tM隔an饞ag彎er倉a樓m曬=nu較ll;am=掃ge陰tA只ss隆et舌s(紀(jì));In來pu懂tS壁tr燦ea僅m勤is表=仇a及m.靈op郊en負(fù)("凱fi感l(wèi)e僻na每me席")古;Sh第ar當(dāng)ed群Pr耕ef都er俘en剛ce企s不同校應(yīng)用躺共享轟數(shù)據(jù)An程dr惠oi桑d文件談操作SD競Ca帖rd文件伯存取課程島安排把文攔件存諸放在SD膚Ca傘rd在程柔序中剪訪問SD平Ca息rd,你抗需要乓申請辭訪問SD拖Ca圣rd的權(quán)頑限。在An叉dr肌oi桶dM昏an束if化es嬸t.冤xm督l中加呀入訪咱問SD線Ca滋rd的權(quán)槳限如面下:<!互--在SD業(yè)Ca夫rd中創(chuàng)差建與怪刪除覺文件著權(quán)限--肝><us劫es引-p趕er傍mi飾ss傭io豈n炕an往dr胖oi柜d:嘉na均me孫="傻an點(diǎn)dr初oi觀d.畜pe攝rm閃is揉si慘on焦.M風(fēng)OU嚷NT勵(lì)_U悲NM續(xù)OU縣NT咐_F臨IL卵ES齒YS吐TE凝MS"/翼><!健--往SD驅(qū)Ca惑rd寫入膊數(shù)據(jù)鴉權(quán)限--伴><us攜es燈-p尚er刺mi謠ss正io所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論