笔记5--数据存储

android:inputType="textPassword"


android一共提供了四种数据存储方式。

1、File:即常说的文件存储方式,常用于存储大数量的数据,缺点是更新数据比较困难。

写:

File file=new File(context.getFilesDir(), "info.txt");
FileOutputStream fos=new FileOutputStream(file);
//zhangsan##123
fos.write((username+"##"+password).getBytes());
fos.close();

a、File file=new File("info.dat")Android中默认路径是当前应用程序的路径下,即data/\app下,而此路径不允许创建文件,所以这句话不会生成文件。android提供了一个路径,在data\data\包名\下,可以将文件创建在该路径下。但是如果更改了包名,则又会出现创建路径失败,因为不允许一个程序在另一个程序的路径下创建文件。为此,android提供了一个Context类,可通过该类的getFilesDir()获得路径:data\data\包名\files\。

    如果需要临时保存程序的中间数据,则可存放在应用程序的cache(缓存)文件夹下。此缓存可通过手机的清除缓存删除掉。获取缓存的方法为:Context.getCacheDir()。

b、手机内部存储空间理解成一块微硬盘。外部存储空间:sd卡。4.0以前的版本读sd卡不需要权限,写需要,4.0以后增加了“设置-开发者选项 -对SD卡进行读写保护”。获取sd卡的路径:Environment.getExternalStorageDirectory()。判断sd卡是否可用:if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))。


2、SharedPreferences:除SQLite数据库外,另一种常用的数据存储方式,其本质是基于xml文件存储key-value键值对数据,常用于存储简单的参数设置。文件存放在data\data\包名\shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改通过Edit类实现。步骤:1)根据Context获取SharedPreferences对象。2)利用edit()方法获取Edit对象。3)通过Editor对象存储key-value键值对数据。4)通过commit()提交数据。

3、Android中,你为某个程序创建的数据库,只有它可以访问,其他程序是不能访问的。数据库位于/data/data/databases文件夹中。

SQLiteOpenHelper:抽象类,管理数据库的版本和创建。所以必须自己继承它先。

构造函数:四个参数分别是:context、数据库名字、一个可选的游标工厂(通常是null),一个代表你正在使用的数据库模型版本的整数。

onCreate():数据库第一次被创建的时候执行。

onUpgrade():数据库版本变化时执行。

getReadableDatabase()和getWriteableDatabase():创建或者打开数据库。

SQLiteDataBase:封装了一些操作数据库的API。

beginTransaction():开始数据库的事务。

setTransactionSuccessful():标记数据库事务执行成功。每次执行完事务的语句时,必须执行此方法。它用来标数据库记事务执行完成,若不执行此方法,则认定数据库事务失败。

endTransaction():结束数据库的事务。

SQLite:Android平台上集成的一个嵌入式关系型数据库。支持的数据类型:NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)、BLOB(二进制类型)。虽然只有5种数据类型,但实际上sqlite3也接受varchar(n)、char(n)、decimal()等数据类型,只不过在运算或保存时会转换成对应的五种数据类型。SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。但有一种类外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,向这种字段保存整数以外的数据会报错。


系统API优点:不用关心数据类型。


数据库事务:

你可能感兴趣的:(笔记5--数据存储)