文件存储:openFileInput和openFileOutput方法来读取设备上的文件
- 分为两种内部存储和外部存储
- 内部存储:内部存储是指将应用程序中的数据以文件的形式存储到应用中(该文件默认位于data/data/<packagename>/目录下),存储文件会被其程序私有化,如其他程序想要操作本文件,则需要权限。当程序卸载后,内部存储文件也随之被删除。mode
QQ截图20200602162523.png
读取内部存储:
QQ截图20200602163635.png
- 外部存储:外部存储是指将数据以文件的形式存储到一些外部设备上,列如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