欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

文件缓存(配合JSON数组)

程序员文章站 2024-02-29 18:14:28
1.   写入缓存:建立文件夹,把list集合里面的数组转换为json数组,存入文件夹 2.   读取缓存:把json数组从文件夹...

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数组),希望对大家有所帮助