当前位置:文档之家› Android中数据存储方式

Android中数据存储方式

1. sharedPreferences
类似于存储window下的配置文件(.ini),sharedPreferences中存储的信息都是以键值对的形式存储
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="键名">键值</string>
<string name="username">ffppp</string>
</map>
用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卡上创建删除文件的权限
<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"获得sdcard上读写数据的权限
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
写入Sd卡
//FileWriter返回字符型数据
FileWriter fw = new FileWriter(file);
fw.write(fileContent);
fw.close();
读取sd卡
File file = new File("/mnt/sdcard/" + FileName);
FileReader fr = new FileReader(file);
StringBuffer sb = new StringBuffer();
BufferedReader br = new
BufferedReader(fr);
String data = "";
while ((data = br.readLine()) != null) {
sb.append(data);
}
return sb.toString();。

相关主题