关于文件存储
android系統(tǒng)是基于linux的,所以他的文件結(jié)構(gòu)是類似的。
Android支持在SD卡上的應(yīng)用私有目錄,在Froyo版本后,通過getExternalFilesDir()可以獲得具體路徑。該路徑依賴與應(yīng)用的包名,如果你包為hello.file那么SD開上的應(yīng)用私有目錄為\mnt\sdcard\Android\data\hello.file\files\.如果希望存儲在SD卡上的公共目錄下,可以通過getExternalStoragePublicDirectory()公共目錄的具體路徑視需要存儲的文件類型而定。
SD上的應(yīng)用需要的緩存較大,也可以在SD卡上建立緩存目錄,在Froyo版本后,通過getExternalCacheDir()可以獲取應(yīng)用在SD卡上的緩存路徑。在使用SD卡目錄時,需注意SD卡是否掛載,可通過Environment.getExternalStorageState()方法進行判斷,如果返回值為Envirnment.MEDIA_MOUNTED表示SD卡處于掛載狀態(tài),可以放心使用。
?
一、存貯模式有
1.Context.MODE_PRIVATE:私有覆蓋模式 ? ? - ?rw- ?rw- ?---
只能被當(dāng)前應(yīng)用訪問,并且如果寫入,則覆蓋;
2.Context.MODE_APPEND:私有追加模式 ? ?? - ? rw- ?rw- ?---
只能被當(dāng)前應(yīng)用訪問,并且如果寫入,則追加;
3.Context,MODE_WORLD_READABLE:公有只讀模式 ? ? ?- ?rw- ?rw- ? r--
可以被其他應(yīng)用讀取;
4.Context.MODE_WORLD_WRITEABLE:公有可寫模式 ? ? - rw- ? rw- ?-w-
可以被其他應(yīng)用寫入,但不能讀取;
?
二、?SharedPreferences 存儲?
該數(shù)據(jù)存放在\data\data\包.名\shared_prefs文件夾下,文件擴展名為.xml。
數(shù)據(jù)以這種形式存儲: ?
<map><boolean name="firstFlag" value="true" /></map>?
三、getExternalFilesDir()與getExternalStorageDirectory()區(qū)別
getExternalFilesDir()獲取應(yīng)用程序下的存儲目錄,/data/data/your_package/,隨著應(yīng)用的卸載存儲的文件被刪除
getExternalStorageDirectory()獲取sd卡根目錄,跟應(yīng)用的是否卸載無關(guān)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/weidingqiang/p/5019462.html
總結(jié)
- 上一篇: Android编译系统入门(二)
- 下一篇: HashSet中是如何判断元素是否重复的