溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

android筆記

發(fā)布時間:2020-10-23 03:43:34 來源:網(wǎng)絡(luò) 閱讀:501 作者:yahaa 欄目:移動開發(fā)

14.3.01


數(shù)據(jù)存儲(持久化)  

五種:(外存)

1、Shared Preferences

Store private primitive data in key-value pairs.

參數(shù)共享(保存關(guān)鍵參數(shù):下載、登陸等)

2、Internal Storage

Store private data on the device memory.

內(nèi)部存儲

3、External Storage

Store public data on the shared external storage.

外部存儲(保存文件、安裝包)

4、SQLite Databases

Store structured data in a private database.

數(shù)據(jù)庫存儲(外存)

5、Network Connection

Store data on the web with your own network server.

網(wǎng)絡(luò)存儲



1、sharePreferences

應(yīng)用場景:應(yīng)用程序有少量的數(shù)據(jù)需要保存(設(shè)置參數(shù)的保存)


例子:按鈕點擊保存

//得到參數(shù)共享類型的對象

   SharePreferences preference=getPreferences(0);//0:默認值

//編輯器類型的對象

Editor edit=Preference.edit();

//想編輯器對象添加數(shù)據(jù)

Edit.putBoolean(isLogin,true);

edit.putString(name,Lucy);

//提交

   Commit();



獲取數(shù)據(jù)

getBoolean(isLogin,false);//false:默認值

getString(name,SS);//SS:默認值

   privatevoid getData() {

   SharedPreferences preferences = getPreferences(0);

   boolean login = preferences.getBoolean("isLogin", false);

   String name = preferences.getString("name", "Lily");

   mTv_show.setText(login+"  "+name);

}


保存位置

Data/data/包名/shared_prefs/xxx.xml

修改保存位置:

Sharepreferences sp=getSharepreferrences(xibo,0);//xibo保存的文件名





2、InternalStorage

保存位置:

Data/data/包名/files/aa.txt"

保存


privatevoid saveData() {

FileOutputStream openFileOutput =null;

try {

openFileOutput = openFileOutput("aa.txt", MODE_PRIVATE);

String str="Hello";

openFileOutput.write(str.getBytes());

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

if(openFileOutput!=null){

try {

openFileOutput.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}



讀取

FileInputStream

privatevoid getData() {

FileInputStream fis=null;

ByteArrayBuffer bab=new ByteArrayBuffer(4000);

try {

Log.e("getData", "sss");

fis=new FileInputStream("data/data/com.example.day_example/files/aa.txt");

int len;

byte[] buffer=newbyte[1024];

while(-1!=(len=fis.read(buffer))){

bab.append(buffer, 0, len);

}

String str=new String(bab.toByteArray(), 0, bab.length());

mTv_show.setText(str);  

Log.e("getData------>", ""+bab.length());

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

if(fis!=null){

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}


讀寫模式:

MODE_PRIVATE私有模式:只有當(dāng)前應(yīng)用才能對這個文件進行讀寫操作,不會進 行疊加,每次都清空

MODE_APPEND添加模式:只有當(dāng)前應(yīng)用才能對這個文件進行讀寫操作,對數(shù)據(jù)  追加

MODE_WORLD_READABLE其他應(yīng)用可讀

MODE_WORLD_WRITEABLE其他應(yīng)用可寫


3、外部讀取


查找sd

   File file =Environment.getExternalStorageDirectory();

   String path=file.getAbsolutePath();

判斷sd卡是否可用

Environment..MEDIA_MOUNTED.equals(Environment.getExternalStorageState());

獲得sd卡的可用空間

file.getFreeSpace();


 

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI