Android 数据存储包括三种:文件存储、SharedPreferences存储、数据库存储(SQLite)。

文件存储

      适合用于存储一些简单的文本数据或二进制数据。

     存储路径:/data/data/<应用程序包名>/files

       3.使用方法:

FileInputStream openFileInput(String name);  读取文件
FileOutputStream openFileOutput(String name , int mode) 写入文件

       4.文件操作模式:

                     MODE_PRIVATE:为默认操作模式,文件为私有数据。

                     MODE_APPEND:检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

MODE_WORLD_READABLE:全局读

MODE_WORLD_WRITEABLE:全局写

SharedPreferences存储

     存储路径:

                  /data/data/<应用程序包名>/shared_prefs

       SharedPreferences存储的特点:

sharedPerferences是一种轻量级的存储方式。
                   (2) 只支持JAVA基本数据类型,不支持自定义的数据类型。
                   (3) 应用内数据可以共享。
                   (4) 使用简单,方便。

                   (5) 对少量数据进行存储(配置信息)使用键值对存储(key-value)

          3.SharedPreferences的使用:

                获取SharedPreferences 对象

getSharedPreferences(String  name , int mode)

                        Name:存储的文件名

                        Mode:访问模式,设置SharedPreferences对象权限

SharedPreferences prefs = getSharedPreferences("fileName", Context.MODE_PRIVATE);

                 三种访问模式:

应用私有(MODE_PRIVATE) (目前只用这一种)。

                      全局读(MODE_WORLD_READABLE) (Android 4.2中弃用)

                      全局写(MODE_WORLD_WRITEABLE) (Android 4.2中弃用)

 读取SharedPreferences文件存储的数据:

通过SharedPreferences对象的键key,获取相应key键值。

常用方法: getString(key,value)、getBoolean(key,value)、getInt(key,value)、getFloat(key,value)、getLong(key,value)

                       value: 默认返回值

                      eg:

SharedPreferences prefs = getSharedPreferences("file", Context.MODE_PRIVATE);     
                                String name = prefs.getString("name", null);     
int age = prefs.getInt("age", 0);

        向SharedPreferences文件存储数据

                             

edit().putString(“string”,value)、edit().putBoolean (“string”,value)、 edit().putInt (“string”,value)

             提交数据: commit() & apply()

                                (1) commit方法有boolean的返回值,apply没有返回值,无法知道存储是否失败。

                                (2)  apply异步提交, commit提交是同步过程,效率更慢。

                                (3) 在不关心提交结果是否成功的情况下,优先考虑apply方法。

           其他方法:

prefs.edit().remove(key).commit();  //移除某个key值
prefs.edit().clear().commit(); //清楚所有数据
                       prefs.contains(key);  //查询某个key是否存在,返回boolean值 
prefs.getAll();   //返回所有的键值对返回一个Map<Sting,?>

数据库存储(SQLite)

       特点:

安卓自带,轻量级、速度快、占用资源少

     存储路径:

/data/data/<应用程序包名>/databases

      主要类:

SQLiteOpenHelper 抽象类,用于数据库的创建和升级

必须实现的抽象方法:onCreate() ,onUpgrade()

                  SQLiteDatabase 数据库操作类,用于数据增删改成操作

                                    insert() 、delete()、 update()、 query()

         4.SQLite 的使用:

                  •  创建数据库帮助类DatabaseHelper继承SQLiteOpenHelper

public DatabaseHelper(Context context, String name, CursorFactory factory,   int version)//带全部参数的构造函数,context, 数据库名字,null,版本号
 {
        super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
        //创建数据库sql语句 并 执行
        String sql = "create table user(name varchar(20))";
db.execSQL(sql);
    }
@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists user");
onCreate(db);
}

                •  获取数据库的操作对象,同时创建数据库:

DatabaseHelper mDatabase = new DatabaseHelper(getContext(), "usersDataBase.db",null,1);
SQLiteDatabase db= mDatabase .getWritableDatabase() (读写)
SQLiteDatabase db= mDatabase .getReadableDatabase() (只读)

                 • SQLite 数据操作—增删改查

方法一、使用 insert() 、delete()、 update()、 query()方法:

Ø 插入:
db.insert(tableName,null,value)
Ø 删除:
db.delete(tableName,selection, selectionArgs); 表名,条件,条件值
Ø 修改更新:
db.update(tableName, values, selection, selectionArgs);
Ø 查找:
          Cursor cursor = db.query(String table, String[] columns, String selection, String[] selectionArgs,String groupBy, String having,String orderBy)

Cursor类常用方法:

         

android获取另一个界面数据_sql

方法二、db.execSQL(sql)

   SQL 常用语句:

                 

sql = create table 数据表 (字段1 类型1(长度),字段2 类型2(长度) …… )
                            sql = "select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
                            sql = "select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]”
                            sql = "delete from 数据表 where 条件表达式”
                            sql = "update 数据表 set 字段名=字段值 where 条件表达式”
                            sql = "insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)”