天天看點

檔案緩存(配合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;
        
    }