Android数据持久化的方式总结

        一、SharedPreferences
  
  以.xml格式的文件进行存储,存储位置在data/data/package/shared_prefs/目录下。
  
  存储步骤:
  
  1、创建文件:getSharedPreferences(name, mode);name为文件名,如果有此文件存在,不再创建,直接用此文件。
  
  2、获取文件编辑器:SharedPreferences.Editor se=preferences.edit();
  
  3、存入数据:se.putString("et_content", et.getText().toString());调用编辑器的putXxx方法,可存入不同类型的数据,共有putInt(key,
  
  value)、putLong(key, value)、putFloat(key, value)、putBoolean(key, value)、putString(key, value)和putStringSet(arg0, arg1)六个方
  
  法。
  
  4、提交改变:se.commit();
  
  例如:getSharedPreferences("dcy", Context.MODE_PRIVATE).edit().putString("username", et_username.getText().toString().trim
  
  ()).commit();
  
  取出数据:getSharedPreferences("gxx", Context.MODE_PRIVATE).getString("et_content", "");
  
  二、内部存储(存储到手机内部存储空间)
  
  存储目录为data/data/package/files/
  
  存储步骤:
  
  1、打开存储文件:openFileOutput(name, mode);name不限制类型,可自行指定
  
  2、写入数据:fos.write(buffer);
  
  3、刷新关闭流:fos.flush();fos.close();
  
  例如:
  
  FileOutputStream fos=openFileOutput("dcy.txt", Context.MODE_PRIVATE);
  
  fos.write(text.getText().toString().getBytes());
  
  fos.flush();
  
  fos.close();
  
  取出数据:openFileInput("dcy.txt");只需要指定读取数据的文件名即可。
  
  getFilesDir();获得的是绝对路径/data/data/com.example.studentlogin/files
  
  getCacheDir();获得的是绝对路径/data/data/com.example.studentlogin/cache
  
  三、sdcard存储
  
  将数据存储到手机的sdcard上面,需要声明一个外部存储可写的权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  
  如果要判断sdcard是否挂载还需要一个权限:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
  
  存储过程:
  
  1、获取sdcard当前状态:Environment.getExternalStorageState();返回一个字符串常量,例如Environment.MEDIA_MOUNTED(sdcard已挂载)
  
  2、判断sdcard是否挂载:Environment.MEDIA_MOUNTED.equals(state);sdcard挂载则执行下面的存储操作
  
  3、指定目录:File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cat.mp3");
  
  4、写入数据:new FileOutputStream(file).writer();
  
  取出数据用FileInputStream即可。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值