在android開發中我們會接觸到四種資料儲存方式,每種儲存方式都各有不同;以下我分別列舉了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(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) }/*
* 重新建立資料表
*/private void createtable() catch (sqlexception e) }/*
* 刪除資料表
*/private void droptable() catch (sqlexception e) }/*
* 插入兩條資料
*/private void insertitem() catch (sqlexception e) }/*
* 刪除其中的一條資料
*/private void deleteitem() 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結構的儲存方式,也是點一下名了。
如何使用 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中儲存路徑
string dir environment.getexternalstoragedirectory getabsolutepath tencent micromsg weixin 注意 environment.getexternalstoragedirectory 返回的路徑中最後乙個字元不是 如...
Android中儲存資料的四種方法
在android開發中我們會接觸到四種資料儲存方式,每種儲存方式都各有不同 以下eoe分別列舉了android開發中的不同儲存方式的特點。一,preferences preferences是乙個較輕量級的儲存資料的方法,具體使用方法 在a中儲存值 sharedpreferences.editor s...
Hive中儲存json格式的資料
啟動hadoop start all.sh 啟動hive hive 載入hcatalog包,此包已經包含在hive中 add jar hive目錄 hcatalog share hcatalog hive hcatalog core 1.2.0.jar 準備一批json資料 將資料複製在乙個檔案裡面...