最近使用到了SharePreference保存数据,并删除的功能,我们知道SP保存的文件是存放在/data/data/包名/shared_prefs文件夹下
一般的我们可以这么做
1.创建文件,保存信息
SharedPreferences sp=getSharedPreferences("book",MODE_PRIVATE);
Editor editor=sp.edit();
editor.putFloat("price", (float) price);
editor.commit();
2.删除与清空文件信息
//清空文件数据
SharedPreferences sp=getSharedPreferences("book",MODE_PRIVATE);
if(sp!=null){
sp.edit().clear().commit();
}
//删除文件
File file= new File("/data/data/"+getPackageName().toString()+"/shared_prefs","book.xml");
if(file.exists())
{
file.delete();
Toast.makeText(TestActivity.this, "删除成功", Toast.LENGTH_LONG).show();
}
//创建的时候可以如下创建:
//以时间为单位保存sp名
SharedPreferences sp = BaseApplication.getContext().getSharedPreferences(TYPE_ALL,
Context.MODE_PRIVATE);
//sp文件管理类
public class ShareUtil { private static final String TAG = "ShareUtil"; //sp存放路径 private static final String pathUrl="/data/data/"+ BaseApplication.getContext().getPackageName().toString()+"/shared_prefs"; /** * 遍历获取所有的sp文件 返回的是一个 List* @param Extension 扩展名, */ public static List GetFiles(String Extension) { List paths=new ArrayList<>(); File[] files = new File(pathUrl).listFiles(); File f; if(files == null) { LoggerUtil.i(TAG,pathUrl+"is Empty"); return null; } for (int i = 0; i < files.length; i++) { f = files[i]; if(!f.canRead()) { LoggerUtil.i(TAG,pathUrl+"can not read"); return null; } if (f.isFile()) { if (f.getName().contains(Extension)) //判断扩展名 { LoggerUtil.i(TAG,"f.getName()-->"+f.getName()); String fileName=f.getName().substring(0,f.getName().lastIndexOf(".")); DateInfo dateInfo=new DateInfo(); dateInfo.setDateId(Long.parseLong(fileName)); paths.add(dateInfo); } } } return (List ) SortList(paths,"getDateId","desc"); } /** * 关于list根据对象排序的问题 * @param list 要排序的那个list * @param getMethod 你要排序的那个属性的get方法(比如说userId:“getUserId”) * @param sort 你倒叙还是怎样(倒序:“desc” 顺序:null) * @param * @return */ public static <E> E SortList(List<E> list, final String getMethod, final String sort) { Collections.sort(list, new Comparator