您的位置:首页 > 移动开发 > Android开发

android用存到缓存的方法来保存ListView里的数据

2014-07-30 12:07 369 查看
 

对于这样的数据:

[html] view plaincopyprint?

<?xml
version="1.0"
encoding="utf-8"
?> 
<rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control> 

<mblog><uid>1195224593</uid><favid>3436952795</favid><mblogid>5xtaJR</mblogid><mblogidnum>3436952795</mblogidnum><mblogtype>0</mblogtype><mlevel>0</mlevel><feedid>5xtaJR</feedid><nick>马艳丽</nick><portrait>http://tp2.sinaimg.cn/1195224593/50/5614100014/0</portrait><vip>1</vip><vipsubtype>0</vipsubtype><member_type>13</member_type><remark></remark><level>2</level><rtnum>11</rtnum><commentnum>25</commentnum><attitudenum>0</attitudenum><attitudeid>0</attitudeid><attitudes_status>0</attitudes_status><attitudes_count>0</attitudes_count><mblogtypename></mblogtypename><visible><type>0</type><list_id>0</list_id></visible><content>婚礼在北海美丽的北海公园举行…好美好浪漫的地方…
</content><pic>http://ss12.sinaimg.cn/wap240/473dae11494344debfc5b</pic><time>1288852274</time><source>彩信</source></mblog></rss> 

<?xml version="1.0" encoding="utf-8" ?>
<rss><sid>77f265bb46de068e78f35afbadec62af</sid><count>3</count><control>0</control>
<mblog><uid>1195224593</uid><favid>3436952795</favid><mblogid>5xtaJR</mblogid><mblogidnum>3436952795</mblogidnum><mblogtype>0</mblogtype><mlevel>0</mlevel><feedid>5xtaJR</feedid><nick>马艳丽</nick><portrait>http://tp2.sinaimg.cn/1195224593/50/5614100014/0</portrait><vip>1</vip><vipsubtype>0</vipsubtype><member_type>13</member_type><remark></remark><level>2</level><rtnum>11</rtnum><commentnum>25</commentnum><attitudenum>0</attitudenum><attitudeid>0</attitudeid><attitudes_status>0</attitudes_status><attitudes_count>0</attitudes_count><mblogtypename></mblogtypename><visible><type>0</type><list_id>0</list_id></visible><content>婚礼在北海美丽的北海公园举行…好美好浪漫的地方… </content><pic>http://ss12.sinaimg.cn/wap240/473dae11494344debfc5b</pic><time>1288852274</time><source>彩信</source></mblog></rss>


首先我们把从服务器取到的数据,里面有个主要的对象mblog,我们用一个对象来存储:

[java] view plaincopyprint?

public class MBlog
implements <strong>Serializable</strong> { 
//保证这个对象是可以序列化的      private static
final long serialVersionUID = -3514924369786543050L; 

    public String uid; 

    public String favid; 
    public String mblogid; 

    public String nick; 
    public String portrait; 

    public boolean vip; 

    public String content; 

    public String rtrootuid; 

    public String rtrootid; 

    public String rtrootnick; 

    public boolean rtrootvip; 

    public String rtreason; 

    public int rtnum; 

    public int commentnum; 

    public Date time; 

    public String pic; 
    public String src; 

    public String longitude;// 经度 

    public String latitude;// 纬度 

 
    public boolean equals(Object o) { 

        if (o == null)
return false; 

        if (o ==
this) return
true; 
        Class<?> cla = o.getClass(); 
        if (cla == getClass()) { 

            MBlog other = (MBlog) o; 
            if (other.mblogid.equals(mblogid))
return true; 

        } 
        return false; 

    } 
 
    public int hashCode() { 

        return mblogid.hashCode() *
101 >> 12; 

    } 
 
 


public class MBlog implements <strong>Serializable</strong> {  //保证这个对象是可以序列化的
private static final long serialVersionUID = -3514924369786543050L;
public String uid;
public String favid;
public String mblogid;
public String nick;
public String portrait;
public boolean vip;
public String content;
public String rtrootuid;
public String rtrootid;
public String rtrootnick;
public boolean rtrootvip;
public String rtreason;
public int rtnum;
public int commentnum;
public Date time;
public String pic;
public String src;
public String longitude;// 经度
public String latitude;// 纬度

public boolean equals(Object o) {
if (o == null) return false;
if (o == this) return true;
Class<?> cla = o.getClass();
if (cla == getClass()) {
MBlog other = (MBlog) o;
if (other.mblogid.equals(mblogid)) return true;
}
return false;
}

public int hashCode() {
return mblogid.hashCode() * 101 >> 12;
}

}


在Activity取到缓存的Path:  mCacheDir = this.getCacheDir().getPath();

一般是/data/data/com.example.weibotest/cache

这个是save方法:

[java] view plaincopyprint ?

public static
void save(Object obj, String path) { 

    try { 
        File f = new File(path); 

        /*if(f != null){
            f.mkdirs();

            f.createNewFile();
        }*/ 
        FileOutputStream fos = new FileOutputStream(f); 

        ObjectOutputStream oos = new ObjectOutputStream(fos); 

        oos.writeObject(obj); 
        oos.flush(); 
        oos.close(); 
    } 
    catch (IOException e) { 

    } 


public static void save(Object obj, String path) {
try {
File f = new File(path);
/*if(f != null){
f.mkdirs();
f.createNewFile();
}*/
FileOutputStream fos = new FileOutputStream(f);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.flush();
oos.close();
}
catch (IOException e) {
}
}


读取方法:

[java] view plaincopyprint?

public static Object load(String path) { 

    Object obj = null; 
    File file = new File(path); 

    try { 
        /*if(file != null){

            file.mkdirs();
        }*/ 
        if (file.exists()) { 

            FileInputStream fis = new FileInputStream(file); 

            ObjectInputStream ois = new ObjectInputStream(fis); 

            try { 

                obj = ois.readObject(); 
            } 
            catch (ClassNotFoundException e) { 

            } 
            ois.close(); 
        }    
    }catch (IOException e) { 

        } 
    return obj; 


public static Object load(String path) {
Object obj = null;
File file = new File(path);
try {
/*if(file != null){
file.mkdirs();
}*/
if (file.exists()) {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
try {
obj = ois.readObject();
}
catch (ClassNotFoundException e) {
}
ois.close();
}
}catch (IOException e) {
}
return obj;
}


这样来调用:

[java] view plaincopyprint?

public void parseAssertData() { 

        InputStream is = null; 

        try { 
            is = this.getAssets().open("11.xml", Context.MODE_PRIVATE); 

            int length = is.available(); 

            byte[] buffer = new
byte[length]; 
            is.read(buffer); 
            String temp = new String(buffer); 

 
            try { 
                Object[] array = ParseData.getMBlogList(temp); 

                List<MBlog> list = (List<MBlog>)array[1]; 

                FileUtils.save(list, mCacheDir+'/'+"001_fav"); 

                 
                 
                List<MBlog> list1 = (List<MBlog>)FileUtils.load(mCacheDir+'/'+"001_fav"); 

                MBlog blog = list1.get(1); 

                System.out.println("===size="+blog.src); 

            } catch (Exception e) { 

                e.printStackTrace(); 
            } 
             
        } catch (IOException ex) { 

            ex.printStackTrace(); 
        } 
    } 

public void parseAssertData() {
InputStream is = null;
try {
is = this.getAssets().open("11.xml", Context.MODE_PRIVATE);
int length = is.available();
byte[] buffer = new byte[length];
is.read(buffer);
String temp = new String(buffer);

try {
Object[] array = ParseData.getMBlogList(temp);
List<MBlog> list = (List<MBlog>)array[1];
FileUtils.save(list, mCacheDir+'/'+"001_fav");

List<MBlog> list1 = (List<MBlog>)FileUtils.load(mCacheDir+'/'+"001_fav");
MBlog blog = list1.get(1);
System.out.println("===size="+blog.src);
} catch (Exception e) {
e.printStackTrace();
}

} catch (IOException ex) {
ex.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: