Android保存数据几种常用方法解析

四种数据存储方法

 
 
  1. Preferences
  2. Files
  3. Databases
  4. Network

 

一 preferences

      Preferences从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。

通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。

通过一个实例来了解实际使用方法:

import android.app.Activity;
import android.content.SharedPreferences;  
public class Calc extends Activity {  public static final String PREFS_NAME = "MyPrefsFile";  
protected void onCreate(Bundle state){
super.onCreate(state);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);  
setSilent(silent); 
} 
protected void onStop(){ 
super.onStop(); 
// Save user preferences. We need an Editor object to  
// make changes. All objects are from android.context.Context  
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  
SharedPreferences.Editor editor = settings.edit();  
editor.putBoolean("silentMode", mSilentMode);  
// Don't forget to commit your edits!!!  
editor.commit();  
}  
} 

原理就是一个map, 存于xml中
SharedPreferences作为一种本地存储方式,被多用于存储用户的配置信息,原理就是一个map,将要保存的信息保存到了一个xml配置文件中SharedPreferences作为一种本地存储方式,被多用于存储用户的配置信息,原理就是一个map,将要保存的信息保存到了一个xml配置文件中

二 Files

Files从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。

写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。

读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。
(注意:在其它程序中将无法应用相同的路径和文件名来操作文件)

另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)方法同样返回一个InputStream对象,直接读取文件内容。

三 DateBase

Databases在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。

在程序中创建SQLiteDatabase对象,其中包含了大部分与database交互的方法,例如:读取数据或者管理当前数据。可以应用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法来创建新的数据库。

对于SQLitedatabase而言,其强大和方便的功能为Android提供了强有力的存储功能。特别是存储一些复杂的数据结构,例如:Android特别为通讯录创建了特有的数据类型,其中包含了非常多的子集而且涵盖了大部分的数据类型 “First Name” “Last Name” “PhoneNumber”和“Photo”等。

Android可以通过Sqlite3 database tool来查看指定数据库中表的内容,直接运行SQL命令来快速便捷的直接操作SQLite database。
数据库在设备中保存的地址是 /data/data/package_name/databases

四 NetWork

Network通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。下面列出了两个用于相关操作的类:

 
 
  1. java.net.*
  2. android.net.*

以上是四种Android保存数据的方法常用于针对Android平台来存储和读取数据的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值