android 文件存储 集合,Android 文件存储的基本使用
在Android中我們大多數情況下我們用的都是絕對路徑;
文件存儲位置說明:
內部存儲不是內存,內部存儲位于系統中很特殊的一個位置,當應用被卸載后,內部存儲的文件夾也被刪除,一個應用所創建的所有文件都在和應用包名相同的目錄下;
數據的寫入:Context類提供了openFileOutput(String ?name ?ContextMode ?model)方法;
參數說明:
name指的是文件名,(不可以包含路徑)
文件默認存儲到data/data//files/目錄下,故不用寫路徑;
model主要有兩種模式,MODE_PRIVATE(同名文件覆蓋)? MODE_APPEND(同名文件夾追加),
還有兩種在4.2是被廢除(這兩種模式允許其他程序對本文件序進行讀寫,存在安全漏洞)
MODE_WORLD_READABLE ? ?MODE_WORLD_WRITEALE
代碼示例:FileoutputStream ?out=openFileOutput("data",Context_MODE_PRIVATE);
BufferWriter ?writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write("ssss");
writer.close();
數據的讀取
Context.openFileInput(String name);
參數說明:name:打開data/data//files/目錄下的文件的名稱;
代碼示例:FileInputStream ?in=openFileInputStream(name);
BufferReader ?reader=new BuferReader(inputStreamReader(in));
reader.readLine();
reader.close();
其他方法說明:
getFilesDir():
方法說明:獲取你app的內部存儲空間,相當于你的應用在內部存儲上的根目錄。
創建一個文件夾代碼示例:File file = newFile(context.getFilesDir(), filename);
getCacheDir()
方法說明:獲取內置存儲下的緩存目錄,可以用來保存一些緩存文件如圖片,當內置存儲的空間不足時將系統自動被清除
Context.fileList()
方法說明:列出所有的已創建的文件返回文件名數組;
Context.deleteFile(String filename)
方法說明:.刪除文件
外部存儲:
外部存儲雖然概念上有點復雜,但也很好區分,你把手機連接電腦,能被電腦識別的部分就一定是外部存儲。
公共文件Public files:文件是可以被自由訪問,且文件的數據對其他應用或者用戶來說都是由意義的,當應用被卸載之后,其卸載前創建的文件仍然保留。必須一些下載的視頻,音樂;
Environment.getExternalStorageDirectory();獲取sdcard根目錄
提示:需要注冊權限并(6.0以上)需要動態申請權限;
私有文件Private files:其實由于是外部存儲的原因即是是這種類型的文件也能被其他程序訪問,只不過一個應用私有的文件對其他應用其實是沒有訪問價值的(惡意程序除外)。外部存儲上,應用私有文件的價值在于卸載之后,這些文件也會被刪除。類似于內部存儲。
Context.getExternalFilesDir();獲取SD卡上的文件目錄,
路徑:SDCard/Android/data/應用包名/files/
Context.getExternalCacheDir();
獲取SD卡上的緩存目錄,可以用來保存一些緩存文件如圖片SDCard/Android/data/應用包名/cache/
if(API《19)需要申請權限,else不需要申請權限;
提示:由于存儲在sdcard上所以盡量不要存在敏感數據比如用戶信息等,這里的文件也會隨著app 被刪除而被刪除。
判斷外置sdcard是否可以正常使用
總結
以上是生活随笔為你收集整理的android 文件存储 集合,Android 文件存储的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 手机命令大全,adb 命
- 下一篇: eclipse android mave