引用:
android,
資料儲存
3g數字內容學院沈大海:
一,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資料儲存方式
1.檔案儲存,2.sd卡儲存 外部儲存 3.sp儲存 配置檔案儲存 4.資料庫儲存 儲存大量結構相似的資料,可以進行增刪改查 5.網路儲存 手機記憶體不足時存放在伺服器端的 sqlite資料庫的建立與增刪改查 1.首先建立mydbopenhelper繼承sqliteopenhelper重寫它的構造方...
Android儲存資料方式(一) File
且有4種檔案操作mode 寫 fileoutputstream outstream context.openfileoutput filename,mode 得到檔案輸出流物件,上下文物件的openfileoutput返回檔案輸出流物件 outstream.write content.getbyte...
Android下的資料儲存方式
安卓系統預設提供了一下幾種資料儲存的方式 shared preferences 內部儲存 外部儲存 sqlite資料庫 儲存到網路伺服器 使用shared preferences shared preferences類主要用於儲存鍵值對的資料型別。我們可以使用它儲存一些簡單的資料型別。獲得share...