android使用與其他平台類似的基於磁碟檔案系統(disk-based file systems),上篇文章通過sharedperference來進行資料儲存,這次可以使用file。
file 物件非常適合用來讀寫那種流式順序的資料,可以用來讀寫檔案或者是網路中交換的資料。
所有的android裝置都有兩個檔案儲存區域:"internal" 與 "external" 儲存。 那兩個名稱來自與早先的android系統中,那個時候大多數的裝置都內建了不可變的記憶體(internal storage),然後再加上乙個類似sd card(external storage)這樣可以解除安裝的儲存部件。後來有一些裝置把"internal" 與 "external" 的部分都做成不可解除安裝的內建儲存了,雖然如此,但是這一整塊還是從邏輯上有被劃分。
external storage:
儲存到手機的internal的時候,需要兩種方法去取出檔案目錄:
下面這種方式直接通過openfileoutput,在對應的路徑下建立乙個檔案:
string filename ="testfile";
string string = "flyelephant!";
fileoutputstream outputstream;
try catch (exception e)
當然如果你想儲存一些快取檔案的時候,就需要呼叫一下系統的getcachedir()方法:
file file;
try
catch (ioexception e)
剛才儲存到internal中的時候什麼都沒有配置,需要儲存到外部的時候需要配置讀寫的許可權,讀的許可權read_external_storage,寫的許可權:read_external_storage:
先來看一段儲存到外部儲存的**:
if (environment.getexternalstoragestate().equals(
environment.media_mounted)) catch (filenotfoundexception e) catch (ioexception e)
log.i("com.example.googlefile", file.getabsolutepath());
首先需要判斷一下sd卡是不是可用,因為external storage可能是不可用的比如sd卡被拔出,那麼你應該在訪問之前去檢查是否可用。你可以通過執行 getexternalstoragestate()來查詢external storage的狀態。如果返回的狀態是media_mounted, 那麼你可以讀寫。(開始沒有判斷的時候,一直沒有找到報錯的原因)
看到這個獲取完之後跟上面儲存在內部儲存裝置的過程一樣,下面就不用多說什麼了,最後一點就是路徑是在/mnt/sdcard目錄下,如果是弄成私有檔案,不允許外部訪問,目錄應該是在
/mnt/sdcard/android/data/包名 目錄下。
檔案儲存比較簡單,另外說下檔案刪除吧,儲存到外部:
file.delete()
internal中的刪除:
mainactivity.this.deletefile("testfile")
Android之資料儲存
概述 1.android中包含5中資料儲存方式 sharedpreferences儲存資料。contentprovider儲存 檔案儲存 sqllite資料庫儲存 網路儲存 preference file database 這三種方式分別對應的目錄是 data data package name s...
android之資料儲存之SQLite
sqlite開源輕量級資料庫,支援92 sql標準,主要用於嵌入式系統,只佔幾百k系統資源此外,sqlite 不支援一些標準的 sql 功能,特別是外來鍵約束 foreign key constrains 巢狀 transcaction 和 right outer join 和 full outer...
Android 資料儲存之Files
android中一共提供了四種資料儲存方式 shared preferences主要用於系統配置資訊的儲存,比如使用者登入時,輸入了使用者名稱密碼,下次登入時保留這一次的輸入內容。files就是把需要儲存的東西都存到檔案中,需要時,則通過讀取這個檔案來獲取。sqlite是乙個開源的關聯式資料庫,可以...