數據存儲與訪問常用方式:
文件
SharedPreferences(偏好參數設置)
SQLite數據庫
內容提供者(Content provider)
網絡
Activity(Context)
Context.getCacheDir()方法用于獲取/data/data/<package name>/cache目錄
Context.getFilesDir()方法用于獲取/data/data/<package name>/files目錄
Activity(Context)提供了openFileOutput(filename,mode)方法用于把數據輸出到文件中;
第一個參數用于指定文件名稱,不能包含路徑分隔符‘/'
第二個參數為操作模式:
Context.MODE_PRIVATE:私有操作模式創建出來的文件只能被本程序訪問,如果文件不存在,會自動創建,另外:寫入文件中的內容會覆蓋原文件的內容;
Context.MODE_APPEND:模式會檢查文件是否存在,如果存在則會追加內容,否則創建新文件;
Context.MODE_READABLE:表示當前文件可以被其它應用讀取;
Context.MODE_WRITEABLE:表示當前文件可以被其它應用寫入;
如果希望文件被其它應用讀和寫:傳入(Context.MODE_READABLE+Context.MODE_WRITEABLE)
FileOutputStream outStream = context.openFileOutput(filename,Context.MODE_PRIVATE);
//param 文件名稱,操作方式
android有一套自己的安全模型,當應用程序(.apk)在安裝時系統會分配給一個userid,當該應用去訪問其它資源如文件的時候,會進行 userid的匹配,默認情況下任何應用創建的文件,sharedpreferences,數據庫都是私有的(創建的文件保存在/data/data /<package name>/files目錄下),只有指定操作模式為外部可讀或寫才可以被其它程序訪問;
讀取文件:
<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 大小寫
新聞熱點
疑難解答
圖片精選