標籤:android 儲存
檔案儲存體資料使用了Java中的IO操作來進行檔案的儲存和讀取。針對檔案的操作主要是以下三種:1.建立或開啟檔案2.讀取檔案3.刪除檔案建立檔案:1.通過Context.openFileOutput擷取輸出資料流
/*
* name 開啟或建立檔案的名稱
* mode 開啟或建立檔案的模式
*/
FileOutputStream openFileOutput (String name,
int mode)Tip:建立的隱藏檔儲存在/data/data/<package name>/files檔案夾下2.四種檔案儲存的模式
Context.MODE_PRIVATE = 0
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_APPEND = 32768MODE_PRIVATE 為預設操作模式,代表該檔案是私人資料,只能被應用本身訪問,在該模式下寫入的內容會覆蓋原檔案的內容。MODE_WORLD_READABLE 表示當前檔案可以被其他應用讀取。MODE_WORLD_WRITEABLE 表示當前檔案可以被其他應用寫入。MODE_APPEND 檢查檔案是否存在,存在就往檔案追加內容,否則就建立新檔案。Tip:在使用模式時,可以用"+"來選擇多種模式,比如openFileOutput(FILENAME, Context.MODE_PRIVATE + MODE_WORLD_READABLE)android有一套自己的安全模型,當應用程式(.apk)在安裝時系統就會分配給他一個userid,當該應用要去訪問其他資源比如檔案的時候,就需要userid匹配。預設情況下,任何應用建立的檔案,sharedpreferences,資料庫都應該是私人的讀取檔案:通過Context.openFileInput擷取輸入資料流。
/*
* name 開啟或建立檔案的名稱
*/
FileInputStream openFileInput (String name)刪除檔案:
/*
* name 刪除檔案的名稱
* return 成功返回true,反之false
*/
boolean deleteFile (String name)
擷取檔案路徑的方法:getFilesDir()可以擷取到"/data/data/<package name>/files"getCacheDir()可以擷取到"/data/data/<package name>/cache"
把檔案存入SDCard1.操作SDCard需要的許可權
<!-- 在SDCard中建立與刪除檔案許可權 -->
<uses-permission android:
name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard寫入資料許可權 -->
<uses-permission android:
name="android.permission.WRITE_EXTERNAL_STORAGE"/> 2.要往SDCard存放檔案,程式必須先判斷手機是否裝有SDCard,並且可以進行讀寫。可以通過getExternalStorageState ()獲得SDCard狀態返回的狀態如下:
Environment.MEDIA_BAD_REMOVAL:bad_removal ——Media Remote before Unmount
Environment.MEDIA_CHECKING:checking——Media present(已插入) and being disk-check
Environment.MEDIA_MOUNTED:mounted——Media present and mounted and can be read/write
Environment.MEDIA_MOUNTED_READ_ONLY:mounted_ro——Media present and mounted and can be read
Environment.MEDIA_NOFS:nofs——Media present but filesytem not support
Environment.MEDIA_REMOVED:removed——Media not present
Environment.MEDIA_SHARED:shared——Media present and not mount. and share
Environment.MEDIA_UNMOUNTABLE:unmountable——Media present but can not mount
Environment.MEDIA_UNMOUNTED:unmounted——Media present but not mount3.擷取SDCard目錄
/*
* return SDCard的目錄File
*/
File getExternalStorageDirectory ()
Android資料儲存——檔案儲存