Android中儲存資料的四種方法

2021-06-19 03:28:03 字數 2587 閱讀 2715

在android開發中我們會接觸到四種資料儲存方式,每種儲存方式都各有不同;以下eoe分別列舉了android開發中的不同儲存方式的特點。

一,preferences

preferences是乙個較輕量級的儲存資料的方法,具體使用方法:

在a中儲存值:

sharedpreferences.editor sharedata = getsharedpreferences("data", 0).edit(); 

sharedata.putstring("name","shenrenkui"); 

sharedata.commit();

在b中取值:

sharedpreferences sharedata = getsharedpreferences("data", 0); 

string data = sharedata.getstring("name", null); 

log.i(tag,"data="+data);

注意:context.getsharedpreferences(stringname,inttype)的引數更我們在建立資料的時候的資料許可權屬性是一樣的,儲存和取值的過程這有點像hashmap但是比hashmap更具人性化,get***(objectkey,objectdefualtreturnvalue),第二個引數是當你所要的key對應沒有時候返回的值。這就省去了很多邏輯判斷。

二,files

在android上面沒有的file就是j2se中的純種file了,可見功能之強大,這裡就算是走馬觀花地嚴重路過了。

//建立檔案

file = new file(file_path , file_name);

file.createnewfile();

//開啟檔案file的outputstream

out = new fileoutputstream(file);

string infotowrite = "紙上得來終覺淺,絕知此事要躬行";

//將字串轉換成byte陣列寫入檔案

out.write(infotowrite.getbytes());

//關閉檔案file的outputstream

out.close();

//開啟檔案file的inputstream

in = new fileinputstream(file);

//將檔案內容全部讀入到byte陣列

int length = (int)file.length();

byte temp = new byte[length];

in.read(temp, 0, length);

//將byte陣列用utf-8編碼並存入display字串中

display =  encodingutils.getstring(temp,text_encoding);

//關閉檔案file的inputstream

in.close();

} catch (ioexception e) catch (sqlexception e) catch (sqlexception e) catch (sqlexception e) catch (sqlexception e) ;

cursor cur = db.query(table_name, col, null, null, null, null, null);

integer num = cur.getcount();

settitle(integer.tostring(num) + " 條記錄");

四,network

這是借助internet來儲存我們要的資料,這是cs結構的儲存方式,也是點一下名了。

如何使用contentprovider?

下邊是使用者經常接觸到的幾個典型contentprovider應用:

*contentprovidername:intendeddata

*browser:browserbookmarks,browserhistory,etc.

*calllog:missedcalls,calldatails,etc.

*contacts:contactdetails

*mediastore:mediafilessuchasaudio,videoandimages

*settings:devicesettingsandpreferences

呼叫contentprovider資源的標準uri結構:

:////

例如:1)取得瀏覽器所有「書籤」資訊:content://browser/bookmarks

2)取得系統通訊錄中的資訊:content://contacts/people(如果取得某乙個特定通訊記錄,在路徑uri的末端指定乙個id號:content://contacts/people/5

簡單的例項片段:

uri allcalls = uri.parse("content://call_log/calls");

cursor c = managedquery(allcalls, null, null, null, null);

Android開發中儲存資料的四種方法方法

在android開發中我們會接觸到四種資料儲存方式,每種儲存方式都各有不同 以下我分別列舉了android開發中的不同儲存方式的特點 一,preferences preferences是乙個較輕量級的儲存資料的方法,具體使用方法 在a中儲存值 sharedpreferences.editor sha...

Android四種儲存資料的方法

一,preferences preferences是乙個較輕量級的儲存資料的方法,具體使用方法 在a中儲存值 sharedpreferences.editor sharedata getsharedpreferences data 0 edit sharedata.putstring name sh...

iOS 資料儲存的四種方式

nskeyedarchiver 採用歸檔的形式來儲存資料,該資料物件需要 遵守nscoding協議,並且該物件對應的類必須提供encodewithcoder 和initwithcoder 方法。前乙個方法告訴系統怎麼對 物件進行編碼,而後乙個方法則是告訴系統怎麼對物件進行解碼。例如對possessi...