1.文件存储:不对存储的内容进行任何格式化的处理,所有数据都原封不动的保存到文件当中,比较适合存储一些简单的文本数据。
2.context类中提供了一个方法:openFileOutput()方法来存储数据到指定的文件中:
MODE_PRIVATE是默认的:文件名相同时会覆盖掉
MODE_APPEDN是文件存在时会在文件后追加。
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = openFileOutput("filename",Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(inputText);
}catch(IOException){
e.printStackTrace();
异常处理
}finally{
try{
if(writer != null){
writer.close();//用完要关掉
}
}catch(IOException){
e.printStackTrace();
}
}
}
4.默认路径:/data/data/包名/files目录
从文件中读取数据:
public void loadFile(){
FileInputStream fis = null;
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try{
fis = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(fis));
//读取一行行读
String line = "";
while((line=reader.readLine()) !=null){
sb.append(line);
}
}catch(IOException e){
e.printStackTrace();
}finally{
if(reader!=null){
try{
reader.close();
}catch{
e.printStackTrace();
}
}
}
return sb.toString();
}
SharedPreferences存储:通过键值对的方式存储,支持多种不同的数据类型存储,存的是什么,取出来就是什么。
1SharedPreferences对象的获取
1.Context类中的getSharedPreferences()方法
参数:第一个是文件名称,第二个是操作模式目前只剩下一种MODE_PRIVATE;其余的分别在4.2与6.0中 被废弃MODE_PRIVATE与传入0的作用相同
2.Activity类中的getPreferences()方法
它会将当前活动的名称作为文件名,有一个参数为操作模式
3.PreferenceManager类中的getDefaultSharedPreferences()方法
它接收一个参数Context用当前的程序包作为文件名
2.调用SharedPreferences对象的edit()方法来获取SharedPreferences.Editor对象
3.向SharedPreferences.Editor中添加数据;;用put方法(putString(),putBoolean())
4.调用apply()将添加的数据提交(commit会存在一些问题)可以看http://www.360doc.com/content/17/0508/08/33279485_652009895.shtml
读取数据时:用SharedPreferences的各种get方法就好了get方法的两个参数:
第一个是键的值,第二个是没有找到对应值时的默认值