Android中資料儲存的幾種方法

2021-09-30 05:38:30 字數 4378 閱讀 1285

檢視文章

android中資料儲存的幾種方法 

在android中,可供選擇的儲存方式有

sharedpreferences、

檔案儲存、sqlite資料庫方式、內容提供器(content provider)和

網路

2010-05-20 23:12

一,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(string name,int type)的引數更我們在建立資料的時候的資料許可權屬性是一樣的,儲存和取值的過程這有點像hashmap但是比hashmap更具人性化,get***(object key,object defualtreturnvalue),第二個引數是當你所要的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)

//從 資源讀取

inputstream is=getresources().getrawresource(r.raw.檔名)

三,databases

android內嵌了功能比其他

手機操作

系統強大的關係型

資料庫sqlite3,我們在大學時候學的sql語句基本都可以使用,我們自己建立的資料可以用adb shell來操作。具體路徑是/data/data/package_name/databases。如,這裡演示一下進入com.android.providers.media包下面的操作。

1,   adb shell

2,   cd /data/data/com.android.providers.media/databases

3,   ls(檢視com.android.providers.media下面的資料庫)

4,   sqlite3 internal.db

5,   .help---看看如何操作

6,   .table列出internal資料中的表

7,   select * from albums;

databasehelper mopenhelper;

private static final string database_name = "dbfortest.db";

private static final int database_version = 1;

private static final string table_name = "diary";

private static final string title = "title";

private static final string body = "body";

private static class databasehelper extends sqliteopenhelper

@override

public void oncreate(sqlitedatabase db)

@override

public void onupgrade(sqlitedatabase db, int oldversion, int newversion)

}

/*

* 重新建立資料表

*/

private void createtable() catch (sqlexception e)

}

/*

* 刪除資料表

*/

private void droptable() catch (sqlexception e)

}

/*

* 插入兩條資料

*/

private void insertitem() catch (sqlexception e)

}

/*

* 刪除其中的一條資料

*/

private void deleteitem() catch (sqlexception e)

}

/*

* 在螢幕的title區域顯示當前資料表當中的資料的條數。

*/

private void showitems() ;

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

integer num = cur.getcount();

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

}

四,network

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

如何使用 content provider

下邊是 使用者經常接觸到的幾個典型content provider

應用:* content provider name : intended data

* browser : browser bookmarks, browser history, etc.

* calllog : missed calls, call datails, etc.

* contacts : contact details

* mediastore : media files such as audio, video and images

* settings : device settings and preferences

呼叫content provider資源的標準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,可供選擇的儲存方式包括了sharedpreferences 檔案儲存 sqlite資料庫儲存方式 內容提供器方式 content provider 以及網路方式 5種,具體如下 1 sharedpreferences是android提供的一種配置檔案讀寫方式,預設存在應用的data...

android中的資料儲存

資料儲存常用的有兩種sharedpreference,資料庫 1sharepreference,適合儲存量不大,設定類資料,結合之前說過的preference布局更方便。使用很方便 1 獲取preference物件 getsharedpreferences name,mode name是你儲存檔案的...

android中資料儲存

android中資料儲存 android 中儲存資料的方式有五種 sqlite資料庫 檔案儲存 內容提供者 網路 sharedpreferences key value 五種儲存方式。其中sqlite 是才用動態儲存資料型別,會根據存入值自動的判斷,sqlite具有以下五種資料型別 1 null,空...