6.1 android 之持久化技术

本文介绍了Android应用中常用的数据存储方法,包括文件存储、SharedPreferences存储键值对数据以及SQLite数据库存储。详细讲述了每种方法的使用步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

即:.把瞬时数据存储起来。

1.文件存储。

写数据:

FileOutputStream out=openFileoutput( "data",context.MODE_PRIVATE);

BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(out));

writer.write();

结束时writer要关闭。

public void save(String inputText) {
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(inputText);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}


读取数据:

InputStrem in=openFileInput( "data");

BufferedReader reader=new BufferedReader(new InputStremReader(in));

String readline=Reader.readLine();

利用StringBuilder的append()方法来保存所有字符串内容

StringBuilder content=new StringBuilder( );

conent.append(readline);


2利用SharedPreferences来存储键值对数据,即每个数据对应相应的名字。

获取SharedPreferences对象,有三种方法:

context的getSharedPrefereces(“data” ,context.MODE_PRIVATE);

Activity类的getPrefereces(context.MODE_PRIVATE);

preferceManager类的getDefaultContextPreferences(context);


写数据

SharedPreferences pre=getSharedPreferences( );//获取sharedPreferences对象。

SharedPreferences.Editor editor=pre.edit( );//获取编辑器

然后就可以利用编辑器来添加数据了。

editor.putInt("age",22);

editor.putBoolean("marriage",false);

将编辑器提交

editor.commit( );


读取数据:

SharedPreferences pre=getSharedPreferences( );//获取sharedPreferences对象。

int age=pre.getInt("age",0);//第二个参数是默认的。如果没有这个键的值,就默认为0.

boolean marriage=pre.getBoolean("marriage",false");


3 SQlite 数据存储。

首先应该自定义一个MyDatabaseHelper继承SQLiteOpenHelper.必须重写 onCreate( )和onUpdate( )方法。

构造函数中有四个参数:context,数据库名 name,还有查询数据时返回自定义的cursor,一般为null,当前数据库的版本。

public MyDatabaseHelper(Context context, String name, CursorFactory factory, int version)

当version 比之前的版本高,就会调用onUpdate()方法,否则就会调用onCreate( )方法


获取MyDataBaseHelper对象后,在调用方法getReadableDatabase( )可以得到SQLiteDataBase对象 database.

调用database的

insert( )第一个参数为表名,第二参数一般为null,第三个参数为ContentValues类型的对象,

ContentValues values = new ContentValues();
// 开始组装第一条数据
values.put("name", "The Da Vinci Code");
values.put("author", "Dan Brown");
values.put("pages", 454);
values.put("price", 16.96);
db.insert("Book", null, values); // 插入第一条数据
values.clear();

delete( 表名,“age=?”,new String[]{"21"});

update(表名,values,"age=?",new String[]{"21"});//values为更新的键值对

Cursor cursor=query(表名,"name,age","id=?",new String[]{"1"},null,null,null)第5,6,7个参数分别代表,group by,having,order by等方法的

cursor.MoveToFirst( );cursor.MoveToNext( );

cursor.getString(getColumnIndex("age"));

方法可以实现数据库的增删改查



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值