android成长日记 11.详细学习了数据存储相关基础知识

其实很简单,数据存储分为三种,分别是文件存储,sharepreference.和数据库存储.下面来一一介绍.

  1. 文件存储,就是利用java中的输入输出流,把要存储的内容以文件的形式保存在手机中,它就仅仅是你写入的内容,他没有键值对.也就是说你不能索引,你只能全写全拿.细节分为写入文件,和从文件读取,

写入文件:首先你要有一个对象,BufferWriter对象调用他的.write(要写入的文件)方法来写入文件,但是这个对象需要一个outputSteamwriter对象才能建立.,,,,但是outputsteamWriter对象需要一个FileOutputSteam对象......但是fileOutputSteam对象需要使用openFileOtput(文件名.和模式.MODE_PRIVATE)来建立,从而可以写入了,我就操了,这他妈拐这么多弯道时为了啥啊.

读取文件:和上边差不太多,但是还是有区别的.首先你要一个BufferReader的对象,调用它的read()函数来读取,.但是这个对象你需要一个inputSteamreader对象来建立,,,,,,,但是inputSteamreader对象需要一个fileinputSteam对象.....fileinputSteam对象需要使用openfileinput(文件名),才能建立.从而实现,其实写代码的时候都是反着写的,一层一层的往里写,这里和写入的区别就是,读取是有返回值的....你就要建立一个对象StringBuilder对象.这个对象不能声明为null,(千万记住,要不会报错空指针)你需要new一个对象给它.剩下的就是最后把它再返回吧,

说一说如何遍历要读取的字符串:.

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 (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();
}

第二种使用sharePreference存数据.

你只需要一个sharePreference对象就行(三种方法可获得.1.context中可以直接getSharePreference(文件名和操作模式MODE_PRIVATE.第二种,activity中getPreference(操作模式就行,文件名默认为类名);第三种PreferenceManager 类中的getDefaultSharedPreferences()方法)

有了这个对象,,,,,你只需要调用它的edit方法获得editor他是SharePreference.Editor对象,editor.可以调用putString和putint等方法.但是数据是以键值对存在的,

最后editor.commit()就可以吧数据保存.

获取数据的时候,建立sharePreference对象使用getSharePreference(文件名.模式)使用它的getString等函数就可以

最后数据库方式

public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK = "create table book ("
+ "id integer primary key autoincrement, "
+ "author text, "
+ "price real, "
+ "pages integer, "
+ "name text)";
private Context mContext;


public MyDatabaseHelper(Context context, String name, CursorFactory
factory, int version) {
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

 

这就是建立数据库的基本类.使用dbHelper.getWritableDatabase();语句可以建立

更新时候重写下onUpgrade函数,最好是使用Switch函数判断oldVersion来判断用户是升级呢还是第一次安装....

另外增删改查

增使用contentVaulues.,.,在里面put数据就好.

 

 

 

 

 

转载于:https://my.oschina.net/u/2415724/blog/638923

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值