android方法保存值,安卓数据存储五种方式

安卓数据存储五种方式

数据存储:

五种:

Shared Preferences 参数共享

Internal Storage   内部存储

External Storage   外部存储 (sdcard)

SQLite Databases   数据库存储

Network Connection 网络存储

1、Shared Preferences 参数共享

应用场景:应用程序有少量的数据需要保持(保持设置的参数)

文件保持位置:/data/data/包名/shared_prefs/xxx.xml

文件格式:xml

保持数据:

//参数是操作模式,0代表着私有的MODE_PRIVATE。

SharedPreferences sp = getPreferences(MODE_PRIVATE);

Editor edit = sp.edit();//获取一个编辑器

edit.putBoolean("boolean", true);

edit.putString("key", "sadfsdf");

edit.putInt("int", 123);

edit.commit();//提交修改

读取数据:

SharedPreferences sp = getPreferences(MODE_PRIVATE);

boolean boolean1 = sp.getBoolean("boolean", false);

int int1 = sp.getInt("int", 0);

String string = sp.getString("key", "");

它的操作模式一般都是MODE_PRIVATE;

SharedPreferences sp = getSharedPreferences("yinan", MODE_PRIVATE);

2、internalstorage 内部存储

文件保持的位置:/data/data/包名/files/xxx.xxx

文件格式:自定义

保持数据:

fos = openFileOutput("yinan.txt", MODE_APPEND);

String str = "uiouioasdffkmgh";

fos.write(str.getBytes());

读取数据:

fis = openFileInput("yinan.txt");

操作(读写)模式:

MODE_PRIVATE 当前应用才有权限读写。数据会覆盖。

MODE_APPEND 当前应用才有权限读写。数据可追加

MODE_WORLD_READABLE  其他应用可读。

MODE_WORLD_WRITEABLE 其他应用可写

读取其他应用的数据:

fis = new FileInputStream("data/data/com.example.ex00_android/files/yinan.txt");

是否能读取的到时有文件的读取模式决定的。

3、External Storage   外部存储

sdcard的读写;

//  "/mnt/sdcard"

//获取sdcard路径

File filename =

Environment.getExternalStorageDirectory();

//sdcard的状态

if(Environment.getExternalStorageState()

.equals(Environment.MEDIA_MOUNTED))

{

//判断sdcard的空间是否足够

long freeSpace = filename.getFreeSpace();

}

else

{

}

4、 SQLite Databases   数据库存储

android平台上,集成了一个嵌入式关系型数据库--SQLite

免费的

轻量级

多线程

跨平台

SQLite 可以解析大部分标准的SQL语句:

创建表:

CREATE TABLE 表名(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(20))

例:CREATE TABLE student (studentid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(50),phone VARCHAR(20))

删除表:

DROP TABLE 表名

例:DROP TABLE student

更新表:

ALTER TABLE 表名 ADD 字段名 属性

例:"ALTER TABLE student ADD COLUMN age INTEGER"

查询语句:

select *  from 表名 where 条件语句 group by 分组语句 having 分组条件  order by 排序语句

例:SELECT phone, name FROM student ORDER BY name DESC

插入语句

insert into 表名(字段名) values (值)

例:INSERT INTO student (name, phone) VALUES(“test”, “13666666666”)

更新语句

updata 表名 set 字段名 = 值 where 条件语句

例:UPDATE student SET phone=1399999999 WHERE name=“test”

删除语句:

delete from 表名 where 条件语句

例:DELETE FROM student WHERE name=“test”

SQLiteOpenHelper

步骤:

1、创建一个类继承SQLiteOpenHelper

2、需要一个构造方法;

参数可以自己选择(但是super里面参数必须要有)

public MySQLiteHelper(Context context,int version)

{

super(context, "yinan.db", null, version);

}

调用:在activity的合适的时机(一般就是在onCreate()方法)

MySQLiteHelper mHelper = new MySQLiteHelper(this, 1);

SQLiteDatabase mDB = mHelper.getWritableDatabase();//只要调用getWritableDatabase跟getReadableDatabase方法就可以获得数据库

注意:

当我们创建MySQLiteHelper对象的时候:

a、数据库不存在的时候就自动创建数据库,并且调用MySQLiteHelper类里面的onCreate();

所以我们就可以在onCreate执行创建表语句

b、如果数据库已经存在了就不会再调用onCreate

c、如果数据库存在,但是版本号不一样的话就会调用onUpgrade()方法(更新表)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值