Android資料儲存之File

2021-09-06 18:56:57 字數 1756 閱讀 6774

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是乙個開源的關聯式資料庫,可以...