14.3.01
我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、貴溪ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的貴溪網(wǎng)站制作公司
數(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ù)的保存)
例子:按鈕點(diǎn)擊保存
//得到參數(shù)共享類型的對象
SharePreferences preference=getPreferences(0);//0:默認(rèn)值
//編輯器類型的對象
Editor edit=Preference.edit();
//想編輯器對象添加數(shù)據(jù)
Edit.putBoolean(“isLogin”,true);
edit.putString(“name”,”Lucy”);
//提交
Commit();
獲取數(shù)據(jù)
getBoolean(“isLogin”,false);//false:默認(rèn)值
getString(“name”,”SS”);//SS:默認(rèn)值
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() {
FileInputStreamfis=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)用才能對這個文件進(jìn)行讀寫操作,不會進(jìn) 行疊加,每次都清空
MODE_APPEND添加模式:只有當(dāng)前應(yīng)用才能對這個文件進(jìn)行讀寫操作,對數(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();