這個總結記得之前發了一次,今天突然找不到了,不知道是不是賬號弄錯了,很是着急,幸虧之前的保存還在,今天重新發一次,希望不要再找不到了。
安卓文件操作涉及的可以分爲三類:
1. SharedPreferences共享文件操作
2. 安卓內部文件存儲操作
3. 外部存儲操作(SD卡)
4. 數據庫存儲操作
本文主要總結一下安卓內部和外部(SD卡)不包括數據庫的操作過程和使用的方法和他們之間的區別和聯繫。
內部存儲:
在內部存儲中創建並寫入一個私有文件:
調用openFileOutput(),傳入文件名和操作模式。方法返回一個FileOutputStream對象。
使用write()寫文件。
使用close()關閉文件流。
例如:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
MODE_PRIVATE創建文件(或以同名文件替換),併爲你的應用所私有。其他可用的模式有:MODE_APPEND, MODE_WORLD_READABLE, 和MODE_WORLD_WRITEABLE。
從內部存儲中讀一個文件:
調用openFileInput(),並傳遞需要讀取的文件的名稱。這個方法返回一個FileInputStream。
使用read()從文件中讀取數據。
使用close()關閉文件流
其他有用的方法
取得內部文件在文件系統中保存位置的絕對路徑。
創建(或者打開已存在的)內部存儲空間所在的目錄。
deleteFile()
刪除內部存儲的一個文件。
fileList()
返回當前由你的應用保存的文件的列表。
上述內部存儲的方法都是直接訪問安卓系統中” data/data/應用的包名/ ”這個路徑下的目錄,不需要我們設置目錄的參數。這個系統路徑也會隨着軟件的生命週期而存在和消失,軟件卸載則消失。
注意:最重要的就是這些方法是安卓(Content類)提供的訪問此處文件不需要提供目錄參數。
外部存儲:
外部存儲有兩類方法一類是安卓Environment類中的方法,這個類的方法一般操作的是SD的公共目錄,在這個公共目錄的文件是一直存在不會隨着軟件的變化而消失。但是注意的是:有一些方法Content類的方法,雖然也是操作SD卡的數據,但是這些數據也是某個應用私有的,隨着應用產生,隨着應用卸載就消失。
Environment類中的訪問公共路徑不會隨着軟件卸載而消失的方法:(路徑: storge/sdcard/各個類別的目錄)
getExternalStoragePublicDirectory();
getExternalStorageDirectory();
getDownloadCacheDirectory();這個方法的緩存數據存在了SD卡的根目錄下的cache緩存目錄下。
Content類的存在外部存儲但是會隨着使用這些方法的應用的卸載而消失的方法(路徑:stprage/sdcard/Android/應用的包名/files/各個類別的目錄):
getExternalFilesDir();
getExternalCacheDir();
說明:其實上面說過的安卓內部存儲的方法如:
getCacheDir()
getFilesDir()
getDir()
deleteFile()
fileList()
也是Content類的方法,但是雖然是同一個類的方法卻又不同的訪問路徑的屬性,重要的也就是要區別這些方法的不同用途。
目的:
根據這些文件存儲的特點我們要根據數據的不同用途保存在不同的位置。從而容易管理數據。方便清理。