




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
SharedPreferences與文件SharedPreferences不同應用共享數據Android文件操作SDCard文件存取課程安排數據存儲方式SharedPreferences存儲到文件SQLite數據庫存儲到網絡內容提供者(Contentprovider)SharedPreferences如何保存軟件配置參數:Window:采用ini文件進行j2se應用:采用properties屬性文件Android平臺提供一個SharedPreferences類,它是一個輕量級的存儲類,適合用于保存軟件配置參數。使用SharedPreferences保存數據,其背后是用xml文件存放數據,文件存放在/data/data/<packagename>/shared_prefs目錄下SharedPreferences存儲數據SharedPreferencessharedPreferences=getSharedPreferences("lxt008",Context.MODE_PRIVATE);Editoreditor=sharedPreferences.edit();//獲取編輯器editor.putString("name","lxt");editor.putInt("age",35);mit();//提交修改生成的lxt008.xml文件內容如下:<?xmlversion=“1.0”encoding=“utf-8”standalone=“yes”?><map><stringname="name">lxt</string><intname="age"value=“30"/></map>SharedPreferences存儲數據getSharedPreferences(name,mode)方法參數1:指定該文件名稱,名稱不用帶后綴。參數2:指定文件的操作模式,共有四種操作模式。Context.MODE_PRIVATE:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPENDContext.MODE_APPEND:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件。Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用來控制其他應用是否有權限讀寫該文件。MODE_WORLD_READABLE:表示當前文件可以被其他應用讀取;MODE_WORLD_WRITEABLE:表示當前文件可以被其他應用寫入。getPreferences(mode)方法操作SharedPreferences,這個方法默認使用當前類不帶包名的類名作為文件的名稱。SharedPreferences存儲數據android有一套自己的安全模型,當應用程序(.apk)在安裝時系統就會分配給他一個userid,當該應用要去訪問其他資源比如文件的時候,就需要userid匹配。默認情況下,應用創建的文件/sharedpreferences/數據庫都應該是私有的(位于/data/data/包名),其他程序無法訪問。除非在創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,只有這樣其他程序才能正確訪問。訪問SharedPreferences數據訪問SharedPreferences中的數據代碼如下:SharedPreferencessharedPreferences=getSharedPreferences("lxt008",Context.MODE_PRIVATE);//getString()第二個參數為缺省值,如果preference中不存在該key,將返回缺省值Stringname=sharedPreferences.getString("name","");intage=sharedPreferences.getInt("age",1);訪問其他應用SharedPreferences數據訪問其他應用Preference,前提條件是:該preference創建時指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE。getSharedPreferences(“lxt008",Context.MODE_WORLD_READABLE);其他應用要訪問上面應用的preference,首先需要創建上面應用的Context,然后通過Context訪問preference,訪問preference時會在應用所在包下的shared_prefs目錄找到preference:ContextotherAppsContext=createPackageContext(“com.lxt008",Context.CONTEXT_IGNORE_SECURITY);SharedPreferencessharedPreferences=otherAppsContext.getSharedPreferences(“lxt008",Context.MODE_WORLD_READABLE);Stringname=sharedPreferences.getString("name","");intage=sharedPreferences.getInt("age",0);SharedPreferences案例參考:SharedPreferencesMidiPlayer結果驗證切換到DDMS視圖選擇FileExplorer標簽/data/data/你的項目目錄/shared_prefs文件存儲文件可以存儲比使用引用更大數量的數據
Android提供方法來讀、寫文件只有本地文件可以被訪問優點:可以存儲大容量的數據缺點:文件更新或是格式改變可能會導致巨大的編程工作讀文件操作Context.openFileInput(Stringname)打開一個與應用程序聯系的私有文件輸入流當文件不存在時拋出FileNotFoundExceptionFileInputStreamin=this.openFileInput("test.txt");//打開文件"test.txt"……in.close();//關閉輸入流寫文件操作Context.openFileOutput(Stringname,intmode)開啟一個與應用程序聯系的私有文件輸出流當文件不存在時該文件將被創建文件輸出流可以在添加模式中打開,這意味新的數據將被添加到文件的末尾FileOutputStreamout=this.openFileOutput("test2.txt",MODE_APPEND);//打開文件"test2.txt"進行寫操作、使用MODE_APPEND在添加模式中打開文件……out.close();//關閉輸出流讀取靜態文件要打開打包在程序中的靜態文件,使用Resources.openRawResource(R.raw.mydatafile)該文件必須放在文件夾res/raw/中InputStreamin=this.getResources().openRawResource(R.raw.my);…//獲得Context資源in.close();//關閉輸入流文件操作案例參考:FileMidiPlayer使用文件進行數據存儲首先給大家介紹使用文件如何對數據進行存儲,Activity提供了openFileOutput()方法可以用于把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的。publicclassFileActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){...FileOutputStreamoutStream=this.openFileOutput(“lxt008.txt",Context.MODE_PRIVATE);outStream.write(“lxt008".getBytes());outStream.close();}}openFileOutput()方法的第一參數用于指定文件名稱,不能包含路徑分隔符“/”,如果文件不存在,Android會自動創建它。創建的文件保存在/data/data/<packagename>/files目錄,如:.lxt008/files/lxt008.txt,通過點擊Eclipse菜單“Window”-“ShowView”-“Other”,在對話窗口中展開android文件夾,選擇下面的FileExplorer視圖,然后在FileExplorer視圖中展開/data/data/<packagename>/files目錄就可以看到該文件。openFileOutput()方法的第二參數用于指定操作模式,有四種模式,分別為:Context.MODE_PRIVATE=0Context.MODE_APPEND=32768Context.MODE_WORLD_READABLE=1Context.MODE_WORLD_WRITEABLE=2讀取文件內容如果要打開存放在/data/data/<packagename>/files目錄應用私有的文件,可以使用Activity提供openFileInput()方法。FileInputStreaminStream=this.getContext().openFileInput(“lxt008.txt");Log.i("FileTest",readInStream(inStream));readInStream()的方法請看本頁下面備注。或者直接使用文件的絕對路徑:Filefile=newFile(".lxt008/files/lxt008.txt");FileInputStreaminStream=newFileInputStream(file);Log.i("FileTest",readInStream(inStream));注意:上面文件路徑中的“com.lxt008”為應用所在包,應替換為你自己應用使用的包。對于私有文件只能被創建該文件的應用訪問,如果希望文件能被其他應用讀和寫,可以在創建文件時,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE權限。Activity還提供了getCacheDir()和getFilesDir()方法:getCacheDir()方法用于獲取/data/data/<packagename>/cache目錄getFilesDir()方法用于獲取/data/data/<packagename>/files目錄把文件存放在SDCard使用Activity的openFileOutput()方法保存文件,文件是存放在手機空間上,一般手機的存儲空間不是很大,存放些小文件還行,如果要存放像視頻這樣的大文件,是不可行的。對于像視頻這樣的大文件,我們可以把它存放在SDCard。SDCard是干什么的?你可以把它看作是移動硬盤或U盤。在模擬器中使用SDCard,你需要先創建一張SDCard卡(當然不是真的SDCard,只是鏡像文件)。創建SDCard可以在Eclipse創建模擬器時隨同創建,也可以使用DOS命令進行創建,如下:在Dos窗口中進入androidSDK安裝路徑的tools目錄,輸入以下命令創建一張容量為2G的SDCard,文件后綴可以隨便取,建議使用.img:mksdcard2048M
D:\AndroidTool\sdcard.img在程序中訪問SDCard,你需要申請訪問SDCard的權限。在AndroidManifest.xml中加入訪問SDCard的權限如下:<!--在SDCard中創建與刪除文件權限--><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!--往SDCard寫入數據權限--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>把文件存放在SDCard要往SDCard存放文件,程序必須先判斷手機是否裝有SDCard,并且可以進行讀寫。注意:訪問SDCard必須在AndroidManifest.xml中加入訪問SDCard的權限if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){FilesdCardDir=Environment.getExternalStorageDirectory();//獲取SDCard目錄
FilesaveFile=newFile(sdCardDir,“lxt008.txt”);F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業設計與智能制造技術融合應用
- 工業設計與制造技術的創新融合
- 工作中的心理疲勞與對策研究
- 工作中的數據分析軟件使用指南
- 工業設計的美學與實 用性探討
- 工作中的法律風險防范與應對
- 工作流程標準化與管理提升
- 工作與生活平衡的企業政策實踐
- 工程塑料模架設計與優化
- 工作匯報的邏輯框架
- 《科學護眼愛眼共享光明未來》近視防控宣傳教育課件
- 面向對象分析和設計講座面向對象方法學PPT資料
- 鑄鐵閘門及啟閉機安裝說明及操作手冊
- 《財政學》教學大綱中文版
- 高危新生兒急診服務流程圖
- CLSI EP25-A 穩定性考察研究
- SJG 44-2018 深圳市公共建筑節能設計規范-高清現行
- 職工子女暑期工會愛心托管班的方案通知
- “文化引導型”城市更新思想思考與實踐課件
- 卷心菜中過氧化物酶熱穩定性的初步研究
- 渦輪增壓器系統及常見故障案例
評論
0/150
提交評論