首页 > 代码库 > 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即可。
以.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数据持久化的方式总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。