首页 > 代码库 > Android数据持久化的方式总结

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即可。

Android数据持久化的方式总结