Android -- 数据存储知识点复习

文件存储:openFileInput和openFileOutput方法来读取设备上的文件

  • 分为两种内部存储和外部存储
  1. 内部存储:内部存储是指将应用程序中的数据以文件的形式存储到应用中(该文件默认位于data/data//目录下),存储文件会被其程序私有化,如其他程序想要操作本文件,则需要权限。当程序卸载后,内部存储文件也随之被删除。mode
QQ截图20200602162523.png

读取内部存储:

QQ截图20200602163635.png
  1. 外部存储:外部存储是指将数据以文件的形式存储到一些外部设备上,列如SD卡或者设备内嵌的存储卡,属于永久性的存储方式(外部存储通常位于mnt/sdcard)。外部存储的文件可以被其他应用程序所共享。这种方式不安全。

使用Environment.getExternalState()方法确认外部设备是否可用。

QQ截图20200602163436.png

读取外部存储:

QQ截图20200602163652.png

申请SD卡写文件权限:

QQ截图20200602164022.png

动态申请:

SharedPreferences:存储简单配置信息的一种机制,它采用了XML格式将数据存储到设备中

QQ截图20200602170231.png
QQ截图20200602170331.png

读取SharedPreferences

QQ截图20200602170550.png

删除SharedPreferences

QQ截图20200602170605.png

SQLite数据库:SQLite是Android自带的一个轻量级数据库

QQ截图20200602170907.png

用该方法中通过super()调用父类SQLiteOpenHelper的构造方法,并传入4个参数,分别表示上下文对象、数据库名称、游标工厂(通常为null)、数据库版本

SQLite Expert Personal 可视化工具查看数据库

SQLite数据库的基本操作:

新增数据:

QQ截图20200602171455.png

删除数据:

QQ截图20200602171534.png

修改:

QQ截图20200602171547.png

查询:

QQ截图20200602171556.png
QQ截图20200602171758.png
QQ截图20200602171805.png
QQ截图20200602171941.png

1.使用SQLite数据库的事务操作,编写一段模拟银行转账的逻辑代码。


//获取一个可读写的SQLiteDataBase对象

SQLiteDatabase db = helper.getWritableDatabase();

// 开始数据库的事务

db.beginTransaction();

try {

  //执行转出操作

  db.execSQL("update person set account = account-1000 where name =?", 

​                              new Object[] { "张三" });

  //执行转入操作

  db.execSQL("update information set account = account +1000 where name =?", 

​                               new Object[] { "王五" });

  //标记数据库事务执行成功

  db.setTransactionSuccessful();

}catch (Exception e) {

  Log.i("事务处理失败", e.toString());

} finally {

  db.endTransaction();   //关闭事务

  db.close();        //关闭数据库

} 

ContentProvider:Android四大组件之一主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用

网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息
0

你可能感兴趣的:(Android -- 数据存储知识点复习)