Android中数据存储方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. sharedPreferences
类似于存储window下的配置文件(.ini),sharedPreferences中存储的信息都是以键值对的形式存储
用sharedPreferences存储信息只能是基础数据类型 如:
int/float/string/stringSet/Long/boolean
SharedPreferences生成的存储文件路径:(默认保存名字为当前Activity.xml)
data/data/包名/shared_prefs/Activity.xml
2. 利用SharedPreferred进行数据存储步骤:
向SharedPreferred中写入数据
1)获得SharedPreferences.Editor对象SharedPreferences.Editor editor =
getPreferences(MODE_PRIVATE).edit();
2)利用editor对象的putXX方法向editor中以键值对的形式存储信息(注意:存储基本数据类型数据)
editor.putString("键名", 值);
editor.putString("password",
password.getText().toString());
3)当editor信息存储完成后,提交,此时会在对应文件夹下生产.xml文件(用此种方式生产的xml文件名默认是
Activity.xml)
mit();-生成.xml文件
读取SharedPreferred中数据
1)获得SharedPreferred对象
SharedPreferences sp =
getPreferences(MODE_PRIVATE);
2)通过SharedPreferred的对象的getXX(“键名”,默认值)的方法可以取出存在.xml文件中的对应信息
sp.getString("username", "");
如果想自定义生产的xml文件名,可以
在获得SharedPreferences.Editor对象时利用如下方法:SharedPreferences.Editor editor =
getSharedPreferences("a",MODE_PRIVATE).edit();
此时存储的文件名为a.xml
对应着
在读取SharedPreferred中数据时,获得SharedPreferred对象利用
如下方法(a为存储文件名,0为文件操作模式)
SharedPreferences sp =
getSharedPreferences(“a”,0);
文件的操作模式
• Context.MODE_PRIVATE:默认模式,在那里创建的文
件只能由应用程序调用,即为私有的,值为0。
• Context.MODE_WORLD_READABLE:允许所有其他应用
程序有读取文件的权限,值为1 。
• Context.MODE_WORLD_WRITEABLE:允许所有其他应用
程序具有写入文件的权限,值为2。
Java数据流
输出流向硬盘里写数据 output-------
参照:电脑内存
输入流从硬盘里读出数据 input------
手机内存中写入/读取数据
写入:output….
// context.getFilesDir().getAbsolutePath()获取内存绝对
路径
File file=new
File(context.getFilesDir().getAbsolutePath()+"/"+FileName); //FileOutputStream 是字节流,处理起来麻烦,
openFileoutput方法中参数不能有“/”
FileOutputStream fileoutputstream=new
FileOutputStream(file);
//OutputStreamWriter就是把字节流转换成容易处理的字符流
OutputStreamWriter osw=new
OutputStreamWriter(fileoutputstream);
//写入数据
osw.write(fileContent);
//关闭
osw.close();
读取:input…
//打开一个文件私有输入流,openFileInput方法中不能有“/”FileInputStream
fileinputstream=this.context.openFileInput(FileName);
//把字节流转换成字符流
InputStreamReader isr=new
InputStreamReader(fileinputstream);
BufferedReader br=new BufferedReader(isr);
//可变长StringBuffer存储读出数据的
StringBuffer sb=new StringBuffer();
String data="";
while((data=br.readLine())!=null){
sb.append(data); }
SDCrad上文件存储
要加上权限
获取sd卡上创建删除文件的权限
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"获得sdcard上读写数据的权限 android:name="android.permission.WRITE_EXTERNAL_STORAGE" 写入Sd卡 //FileWriter返回字符型数据 FileWriter fw = new FileWriter(file);