数据持久化:
只将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据也不会丢失。
1,文件存储:
是android中最基本的一种数据存储方式,不对存储内容进行任何格式化处理,所有诗句原封不动的保存到文件当中,适合存储一些简单的文本数据或二进制数据。
下面是一段代码,展示如何将一段文本内容保存到文件中:
public void save(){
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = openFileOutput("data",Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
}catch(IOException e){
e.printStackTrace():
}finally{
try{
if(writer != null){
writer.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
从文件中读取数据,代码如下:
public String load(){
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
try {
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while((line = reader.readLine()) != null){
content.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();
}
2, SharedPreferences 存储
存储方式:
通过键值对的方式进行存储数据。
(1)得到SharedPreferences对象的方法:
1):Context 类中的getSharedPreferences()方法:
此方法接受两个参数,第一个参数用于指定SharedPrerences 文件的名称,如果指定的文件不存在则会创建一个。第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE和MODE_MULTI_PROCESS。前者是默认操作模式,和直接传入0效果一样,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。后者一般是用于会有多个进程中对同一个SharedPreferences文件进行读写的情况。
2):Activity类中的getPreferences()方法
3):PreferenceManager类中的getDefaultSharedPreference()方法
这是一个静态方法,接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件
得到SharedPreferences对象后,就可以开始存储数据,主要步骤如下:
1,调用SharedPreferences 对象的edit()方法来获取一个SharedPreference.Editor对象。
2,向 SharedPreferences.Editor 对象中添加数据,putBoolean()、putString()方法等,以此类推。
3,调用commit()方法将添加的数据提交,从而完成数据存储操作。
public void onClick(View view) {
SharedPreferences.Editor editor =
getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.putBoolean("married",false);
editor.commit();
}
读取数据:
public void onClick(View view) {
SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name = pref.getString("name","");
int age = pref.getInt("age",0);
boolean married = pref.getBoolean("married",false);
Log.d("MainActivity","name is "+ name);
Log.d("MainActivity","age is " + age);
Log.d("MainActivity","married is " + married);
}
3,创建数据库
SQLiteOpenHelper 类,借助这个类可以对数据库进行创建和升级。
SQLiteOpenHelper 是抽象类,要创建自己的帮助类去继承它。
SQLiteOpenHelper两个重要的实例方法:getReadableDatabase()和getWritableDatabase().这两个方法都可以创建或者打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。
4,升级数据库
调用SQLiteOpenHelper内的onUpgrade()方法实现升级
5,使用事务
事务:
就是把许多事情当成一件事来处理。可以理解为同一条绳上的蚂蚱。
有点:
。在android应用开发中,经常会遇到需要进行数据库操作的时候,Android中进行数据库操作是非常慢的(尤其是写操作),打包成事务能够有效地提高效率。
。保证数据的一致性,有关事务的操作全部完成后才提交(生效),否则就进行事务的回滚操作。
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.beginTransaction() //开启事务
db.endTransaction() //结束事务
只将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据也不会丢失。
1,文件存储:
是android中最基本的一种数据存储方式,不对存储内容进行任何格式化处理,所有诗句原封不动的保存到文件当中,适合存储一些简单的文本数据或二进制数据。
下面是一段代码,展示如何将一段文本内容保存到文件中:
public void save(){
String data = "Data to save";
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = openFileOutput("data",Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
}catch(IOException e){
e.printStackTrace():
}finally{
try{
if(writer != null){
writer.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
从文件中读取数据,代码如下:
public String load(){
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
try {
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while((line = reader.readLine()) != null){
content.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();
}
2, SharedPreferences 存储
存储方式:
通过键值对的方式进行存储数据。
(1)得到SharedPreferences对象的方法:
1):Context 类中的getSharedPreferences()方法:
此方法接受两个参数,第一个参数用于指定SharedPrerences 文件的名称,如果指定的文件不存在则会创建一个。第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE和MODE_MULTI_PROCESS。前者是默认操作模式,和直接传入0效果一样,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。后者一般是用于会有多个进程中对同一个SharedPreferences文件进行读写的情况。
2):Activity类中的getPreferences()方法
3):PreferenceManager类中的getDefaultSharedPreference()方法
这是一个静态方法,接受一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件
得到SharedPreferences对象后,就可以开始存储数据,主要步骤如下:
1,调用SharedPreferences 对象的edit()方法来获取一个SharedPreference.Editor对象。
2,向 SharedPreferences.Editor 对象中添加数据,putBoolean()、putString()方法等,以此类推。
3,调用commit()方法将添加的数据提交,从而完成数据存储操作。
public void onClick(View view) {
SharedPreferences.Editor editor =
getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.putBoolean("married",false);
editor.commit();
}
读取数据:
public void onClick(View view) {
SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name = pref.getString("name","");
int age = pref.getInt("age",0);
boolean married = pref.getBoolean("married",false);
Log.d("MainActivity","name is "+ name);
Log.d("MainActivity","age is " + age);
Log.d("MainActivity","married is " + married);
}
3,创建数据库
SQLiteOpenHelper 类,借助这个类可以对数据库进行创建和升级。
SQLiteOpenHelper 是抽象类,要创建自己的帮助类去继承它。
SQLiteOpenHelper两个重要的实例方法:getReadableDatabase()和getWritableDatabase().这两个方法都可以创建或者打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。
4,升级数据库
调用SQLiteOpenHelper内的onUpgrade()方法实现升级
5,使用事务
事务:
就是把许多事情当成一件事来处理。可以理解为同一条绳上的蚂蚱。
有点:
。在android应用开发中,经常会遇到需要进行数据库操作的时候,Android中进行数据库操作是非常慢的(尤其是写操作),打包成事务能够有效地提高效率。
。保证数据的一致性,有关事务的操作全部完成后才提交(生效),否则就进行事务的回滚操作。
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.beginTransaction() //开启事务
db.endTransaction() //结束事务