Android的数据存储(数据持久化)总共有五种。分别为:

Shared Preferences 参数共享

Internal Storage 内部存储

External Storage 外部存储

SQLite Databases 数据库存储

Network Connection 网络存储

1、Shared Preferences 参数共享

应用场景:应用程序有少量的数据需要保存(设置参数的保存)

文件保存位置:/data/data/包名/shared_prefs/xxx.xml

文件格式:xml

保存数据:

SharedPreferences sp = getSharedPreferences("xinbo", 0);

Editor edit = sp.edit();

edit.putBoolean("isLogin", true);

edit.putString("name", "小丽");

edit.commit();

读取数据:

SharedPreferences sp = getSharedPreferences("xinbo", 0);

boolean boolean1 = sp.getBoolean("isLogin", false);

String string = sp.getString("name", "小花");

mTextView.setText(""+boolean1+string);

2、Internal Storage 内部存储

文件保存位置:/data/data/包名/files/xxx.xxx

文件格式:自定义

保存数据:

fos = openFileOutput("hehe.json", MODE_WORLD_READABLE);

String str = "你好";

fos.write(str.getBytes());

读取数据:

ByteArrayBuffer arrayBuffer = new ByteArrayBuffer(2000);

fis = openFileInput("hehe.json");

byte[] buffer = new byte[1024];

int len;

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

arrayBuffer.append(buffer, 0, len);

}

String string = new String(arrayBuffer.toByteArray(), 0, arrayBuffer.length());

mTextView.setText(string);

MODE_WORLD_READABLE读写模式:

MODE_PRIVATE 私有的,只有当前应用才能去对这个文件

进行读写操作,不会进行追加

MODE_APPEND 只有当前应用才能去对这个文件

进行读写操作,数据会追加

MODE_WORLD_READABLE 其他应用可读

MODE_WORLD_WRITEABLE 其他应用可写

Sqlite DataBase 数据库存储

场景:大量结构相似的数据,频繁的增删改查的时候,用到数据库

通过数据库对象执行sql语句去实现

添加数据:

private void add_Data() {

String str = "INSERT INTO student (name,phone) VALUES ('小丽','657465464')";

mDB.execSQL(str);

}



删除数据:

private void del_Data() {

String str = "DELETE FROM student WHERE name = '小丽'";

mDB.execSQL(str);

}



修改数据:

private void update_Data() {

String str = "UPDATE student SET phone = '110' WHERE name = '小丽'";

mDB.execSQL(str);

}

查询数据:

private void find_Data() {

dataList.clear();

String str = "SELECT name,phone FROM student";

Cursor cursor = mDB.rawQuery(str, null);

// 将游标移到第一个位置

boolean toFirst = cursor.moveToFirst();

while (toFirst) {

// 。。。。。。

String name = cursor.getString(cursor.getColumnIndex("name"));

String phone = cursor.getString(cursor.getColumnIndex("phone"));

MyData myData = new MyData(name, phone);

dataList.add(myData);

// 把游标移动到下一个位置

toFirst = cursor.moveToNext();

}

mTextView.setText(dataList.toString());

}


更多相关文章

  1. Android(安卓)访问权限设置
  2. Android数据库 之 SQLite数据库
  3. Android(安卓)application 和 activity 标签详解
  4. Android(安卓)- Rerofit-RxJava(转载)
  5. Android ListView 事件监听 || 关于ListView选中时显示的效果。
  6. Android教程之android数据库编程
  7. Android(安卓)- Intent基础
  8. 在SQLite数据库中获取新插入数据自增长的ID值(传智播客笔记)
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. Android Layout XML属性
  2. 源码茶舍之android:externalService是什
  3. Android如何设置圆角按钮 类似微信的登陆
  4. Android学习路线
  5. JPCT-AE for Android 3D (一)----------H
  6. Android 进程间通信:AIDL
  7. 前端h5与 Android/iOS 交互传参
  8. [Android]如何获得heap的大小
  9. Android 利用drawable中的gradient属性实
  10. android的binder机制研究二