android的数据储存以及读写

1.sharedpreferences

   sharedpreferences的主要作用是储存程序的轻量级数据,像配置参数之类的。

   获取sharedpreferences的数据:  

//获取sharedpreferences对象
sharedpreferences preference = getSharedPreferences("crazyit",MODE_WORLD_READABLE);
//获取sharedpreferences中的数据,其中第二个参数表示取不到第一个值将取第二参数的值
String time = preference.getstring("time",null);
//同上
String randNum = preference.getint("random",0); 

    向sharedpreferences写入数据

//获取preference的editor对象
sharedpreferences.Eidtor  editor = preference.edit();
//像sharedpreferences中写入key为time的数据
editor.putString(“time”,time);

对其他程序的sharedpreferences进行读写:

   前提是上一个应用程序必须开放读写权限。

   第一步使用createPackgeContext(string packgeName,int flags) 方法获取上一个应用程序的context 之后的操作就一样了。

2.File储存。

根据文件名称获取文件的读写流,之后进行相应的

读操作:

//获取文件的输入流
  FileInputStream in = openFileInput(fileName); 
  //获取数组的大小
  int length = in.available(); 
   //创建byte数组便于读取数据
  byte [] buff = new byte[length];
  //把数据读取到buff中
   in.read(buff); 
  //防止乱码
   res = EncodingUtils.getString(buff, "UTF-8"); 
   in.close();

写操作:

 //获取文件的输出流,将以追加的形式增加数据
  FileOutputStream out = openFileOutput(fileName,MODE_APPEND); 
  //把字符串转化成相应的byte数组
  byte [] buff = string.getBytes(); 
  //把buff写入到文件中
  out.write(buff); 
  out.close();

3读写sd卡上的文件 

要读取sd卡上的文件,必须先判断手机上是否有sd卡和相关的读写权限

读操作:

//判断手机中是否有sd卡,和相关访问sd卡的权限
  if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 	
{
//获取sd卡的相关储存路径
File sdcard = Environment.getExternalStorageDirectory();	
//根据路径和文件名称获取相应的文件输入流
FileInputStream in = new FileInputStream(sdcard.getCanonicalPath() + fileName);
int length = in.available();
byte [] buff = new byte[length];
n.read(buff);
res = EncodingUtils.getString(buff, "UTF-8");
in.close();
return res;
}

写操作就不再重复了

此处追加一个知识对File的操作:

listFiles();//列出此文件夹下的所有文件数组

getParentFile() //获取上级目录文件夹

4. SQLiteDatabase数据库

//打开相应目录下的数据库
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString() + "/my.db3",null);
//之后便可以使用sql语句进行相应的操作了
db.execSQL("insert into news_inf values(null,?,?)",new String[]{title,content}); 
//查询出数据,并且储存在Cursor对象中
Cursor cursor = db.rawQuery("select * from news_inf", null);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值