1.文件存储
这种方式存的是字符串取出来的也是字符串
private void save(){
FileOutputStream out = null;
BufferedWriter writer = null;
try {
out = openFileOutput("my.txt", Context.MODE_APPEND);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write("Hello world BOB");
}catch (IOException e){
e.printStackTrace();
}finally {
try{
writer.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
private String read(){
FileInputStream in = null;
BufferedReader reader = null;
StringBuffer buffer = new StringBuffer();
try{
in = openFileInput("my.txt");
reader = new BufferedReader(new InputStreamReader(in));
String lines = "";
while ((lines = reader.readLine())!=null){
buffer.append(lines);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (reader!=null){
try{
reader.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
return buffer.toString();
}
2.SharedPreferences
存的是xml键值对方式(Map),可以存多种类型,存的是整形取出来的就是整形
SharedPreferences存储过程
- 生成SharedPreferences对象实例
- 调用SharedPreferences的edit()方法获取SharedPreferences.Editor对象
- 向SharedPreferences.Editor对象添加数据
- 调用apply()或者commit()将添加数据提交完成存储
生成sharedPreferences对象的三种方式
Context类中的getSharedPreferences
需要传入参数文件名和操作模式,不过目前只有Context.MODE_PRIVATE这一种
SharedPreferences preferences = context.getSharedPreferences("fileName",Context.MODE_PRIVATE);
Activity类中的getPreferences
和Context类中的调用不同之处是不用传入文件名,默认当前活动类名作为文件名
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
PreferenceManager类中的getDefaultSharedPreferences方法
默认当前应用程序包名作为文件名前缀命名文件
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
小例子
SharedPreferences preferences = getSharedPreferences("data",MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("name","BOB");
editor.putInt("age",12);
editor.putBoolean("sex",false);
editor.commit();//editor.apply();
SharedPreferences读取过程
小例子
SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);
//如果没有取到相应的值就使用默认值
String name = pref.getString("name","如果不存在默认值");
int age = pref.getInt("age",0);
boolean sex = pref.getBoolean("sex",false);
当然Preferences还可以对自己写的xml(包括布局layout)进行编辑
3.sqlite3数据库
现在好多第三方面向对象的数据库封装都很好用,当然不怕麻烦原生的也可以就是麻烦点,就不多介绍了