beans类:public class Person {    private int id;    private String name;    private int age;    @Override    public String toString() {        return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";    }    public Person(int id, String name, int age) {        super();        this.id = id;        this.name = name;        this.age = age;    }    public Person() {        super();        // TODO Auto-generated constructor stub    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }序列化xml文件和pull解析xml文件:public class TestCase extends AndroidTestCase {    public void test() {// writeXmlToLocal();        List<Person> personList = parserXmlFromLocal();        for (Person person : personList) {            Log.i("TestCase", person.toString());        }    }    /** * 写xml文件到本地 */    private void writeXmlToLocal() {        List<Person> personList = getPersonList();        // 获得序列化对象        XmlSerializer serializer = Xml.newSerializer();//serializer :可被序列化的        try {            File path = new File(Environment.getExternalStorageDirectory(), "persons.xml");            FileOutputStream fos = new FileOutputStream(path);            // 指定序列化对象输出的位置和编码            serializer.setOutput(fos, "utf-8");            serializer.startDocument("utf-8", true);    // 写开始 <?xml version='1.0' encoding='utf-8' standalone='yes' ?>            serializer.startTag(null, "persons");       // <persons>            for (Person person : personList) {                // 开始写人(ID)                serializer.startTag(null, "person");    // <person>                serializer.attribute(null, "id", String.valueOf(person.getId()));                // 写名字                serializer.startTag(null, "name");      // <name>                serializer.text(person.getName());                serializer.endTag(null, "name");        // </name>                // 写年龄                serializer.startTag(null, "age");       // <age>                serializer.text(String.valueOf(person.getAge()));                serializer.endTag(null, "age");     // </age>                serializer.endTag(null, "person");  // </person>            }            serializer.endTag(null, "persons");         // </persons>            serializer.endDocument();       // 结束        } catch (Exception e) {            e.printStackTrace();        }    }    //得到一个存有人对象的集合    private List<Person> getPersonList() {        List<Person> personList = new ArrayList<Person>();        for (int i = 0; i < 30; i++) {            personList.add(new Person(i, "wang" + i, 18 + i));        }        return personList;    }    //从本地解析xml文件(pull解析)    private List<Person> parserXmlFromLocal() {        try {            File path = new File(Environment.getExternalStorageDirectory(), "persons.xml");            FileInputStream fis = new FileInputStream(path);            // 获得pull解析器对象            XmlPullParser parser = Xml.newPullParser();            // 指定解析的文件和编码格式            parser.setInput(fis, "utf-8");            int eventType = parser.getEventType();      // 获得事件类型            List<Person> personList = null;            Person person = null;            String id;            while(eventType != XmlPullParser.END_DOCUMENT) {                String tagName = parser.getName();  // 获得当前节点的名称                switch (eventType) {                case XmlPullParser.START_TAG:       // 当前等于开始节点 <person>                    if("persons".equals(tagName)) { // <persons>                        personList = new ArrayList<Person>();                    } else if("person".equals(tagName)) { // <person id="1">                        person = new Person();                        id = parser.getAttributeValue(null, "id");                        person.setId(Integer.valueOf(id));                    } else if("name".equals(tagName)) { // <name>                        person.setName(parser.nextText());                    } else if("age".equals(tagName)) { // <age>                        person.setAge(Integer.parseInt(parser.nextText()));                    }                    break;                case XmlPullParser.END_TAG:     // </persons>                    if("person".equals(tagName)) {                        // 需要把上面设置好值的person对象添加到集合中                        personList.add(person);                    }                    break;                default:                    break;                }                eventType = parser.next();      // 获得下一个事件类型            }            return personList;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }

更多相关文章

  1. Android开发_如何调用 浏览器访问网页和Html文件
  2. Android MediaPlayer 简单综合应用------列出sdcard里所有.mp3文
  3. Android的xml布局文件代码讲解(TextView控件)
  4. Android 获取指定文件目录下的图片
  5. android的sdcard文件的读取和保存详细介绍
  6. 【so文件】添加第三方so文件
  7. Android 实现简单截屏并保存为文件
  8. 解决在sdk manager中更新文件后出现This Android SDK requires A

随机推荐

  1. android 深入研究ratingbar自定义
  2. 【ALearning】第一章 Android概述
  3. 6个必看的Android网站
  4. Kernel.org 被黑,获取 Android(安卓)源码
  5. Android(安卓)安全机制(1)uid 、 gid 与 pi
  6. android 获取汉字拼音
  7. Android应用程序框架层和系统运行库层日
  8. Android(安卓)NFC开发(二)——Android世界
  9. android 机器人
  10. ubuntu android 源码下载