數(shù)據(jù)存儲(chǔ)與訪問常用方式:
文件
SharedPreferences(偏好參數(shù)設(shè)置)
SQLite數(shù)據(jù)庫(kù)
內(nèi)容提供者(Content provider)
網(wǎng)絡(luò)
Activity(Context)
Context.getCacheDir()方法用于獲取/data/data/<package name>/cache目錄
Context.getFilesDir()方法用于獲取/data/data/<package name>/files目錄
Activity(Context)提供了openFileOutput(filename,mode)方法用于把數(shù)據(jù)輸出到文件中;
第一個(gè)參數(shù)用于指定文件名稱,不能包含路徑分隔符‘/'
第二個(gè)參數(shù)為操作模式:
Context.MODE_PRIVATE:私有操作模式創(chuàng)建出來(lái)的文件只能被本程序訪問,如果文件不存在,會(huì)自動(dòng)創(chuàng)建,另外:寫入文件中的內(nèi)容會(huì)覆蓋原文件的內(nèi)容;
Context.MODE_APPEND:模式會(huì)檢查文件是否存在,如果存在則會(huì)追加內(nèi)容,否則創(chuàng)建新文件;
Context.MODE_READABLE:表示當(dāng)前文件可以被其它應(yīng)用讀取;
Context.MODE_WRITEABLE:表示當(dāng)前文件可以被其它應(yīng)用寫入;
如果希望文件被其它應(yīng)用讀和寫:傳入(Context.MODE_READABLE+Context.MODE_WRITEABLE)
FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_PRIVATE);
//param 文件名稱,操作方式
android有一套自己的安全模型,當(dāng)應(yīng)用程序(.apk)在安裝時(shí)系統(tǒng)會(huì)分配給一個(gè)userid,當(dāng)該應(yīng)用去訪問其它資源如文件的時(shí)候,會(huì)進(jìn)行 userid的匹配,默認(rèn)情況下任何應(yīng)用創(chuàng)建的文件,sharedpreferences,數(shù)據(jù)庫(kù)都是私有的(創(chuàng)建的文件保存在/data/data /<package name>/files目錄下),只有指定操作模式為外部可讀或?qū)懖趴梢员黄渌绦蛟L問;
讀取文件:
<1>
FileInputStream inStream = context.openFileInput(filename);
Log.i(TAG,inStream....)
<2>
path="/data/data/<package name>/files/hello.txt";
File file = new File(path);
FileInputStream inStream = new FileInputStream(file);
Log.i(TAG,inStream....)
ctrl + shift + x/y 大小寫