当前位置: 移动技术网 > 移动技术>移动开发>Android > 文件缓存(配合JSON数组)

文件缓存(配合JSON数组)

2019年07月24日  | 移动技术网移动技术  | 我要评论

1.   写入缓存:建立文件夹,把list集合里面的数组转换为json数组,存入文件夹

2.   读取缓存:把json数组从文件夹里面读取出来,然后放入list集合,返回list集合

 private final static file filefolder=new file("/sdcard/mydata");
  private final static file filename=new file("/sdcard/mydata/tem.txt");
  public static boolean writecache(list<data> list)
  {
    if(!filefolder.exists())
      filefolder.mkdirs();
    try
    {
      jsonarray array=new jsonarray();
      for(int i=0;i<list.size();i++)
      {
        data data=list.get(i);
        jsonobject ob=new jsonobject();
        ob.put("name", data.getname());
        ob.put("reason", data.getreason());
        array.put(ob);
      }
      filewriter fw=new filewriter(filename);
      fw.write(array.tostring());
      fw.close();
    }
    catch(exception e)
    {
      e.printstacktrace();
      return false;
    }
    return true;
  }
  public static list<data> readcache() throws jsonexception,ioexception
  {
    if(!filefolder.exists())
      filefolder.mkdir();
    list<data> list=new arraylist<data>();
    if(filename.exists())
    {
      fileinputstream in=new fileinputstream(filename);
      string line=null;
      stringbuffer sb=new stringbuffer("");
      bufferedreader br=new bufferedreader(new inputstreamreader(in));
      while((line=br.readline())!=null)
        sb.append(line);
      br.close();
      in.close();
      jsonarray array=new jsonarray(sb.tostring());
      for(int i=0;i<array.length();i++)
      {
        jsonobject ob=new jsonobject();
        ob=array.getjsonobject(i);
        data data=new data();
        data.setname(ob.getstring("name"));
        data.setreason(ob.getstring("reason"));
        list.add(data);
      }
    }
    return list;
  }

以上所述是小编给大家介绍的文件缓存(配合json数组),希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网