1 public class MainActivity extends Activity { 2 3 private List<Person> persons; 4 @Override 5 protected void onCreate(Bundle savedInstanceState) 6 { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.main); 9 //获取资源文件的输入流对象 10 //InputStream inputstram=this.getClass().getClassLoader().getResourceAsStream("person.xml"); 11 try 12 { 13 persons=new ArrayList<Person>(); 14 File file=new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"a.xml"); 15 Person p=new Person(25, "ggg", "21", "men", "1234562"); 16 persons.add(p); 17 FileOutputStream stram=new FileOutputStream(file); 18 savexml(persons,stram); 19 System.out.println("保存成功"); 20 } 21 catch (Exception e) { 22 e.printStackTrace(); 23 } 24 } 25 26 public void savexml(List<Person> person,OutputStream out) 27 { 28 /** 29 * 类似于这样格式的文件 30 * <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> 31 <persons> 32 <person id="25"> 33 <name>ggg</name> 34 <sex>men</sex> 35 <age>21</age> 36 <phone>1234562</phone> 37 </person> 38 </persons> 39 */ 40 try 41 { 42 //xml解析器 43 XmlSerializer xml=Xml.newSerializer(); 44 //设置xml文件的输出方向 45 xml.setOutput(out, "UTF-8"); 46 //设置xml的开始文档内容及编码格式 47 xml.startDocument("UTF-8", true); 48 //设置xml的开始节点 49 xml.startTag(null, "persons"); 50 52 for(Person p:person) 53 { 54 xml.startTag(null, "person"); 55 56 String id=String.valueOf(p.getId()); 57 xml.attribute(null, "id",id); 58 //设置开始name节点 59 xml.startTag(null, "name"); 60 //设置name的值 61 xml.text(p.getName()); 62 xml.endTag(null, "name"); 63 //设置name的结束节点 64 xml.startTag(null, "sex"); 65 xml.text(p.getSex()); 66 xml.endTag(null, "sex"); 67 68 xml.startTag(null, "age"); 69 xml.text(p.getAge()); 70 xml.endTag(null, "age"); 71 72 xml.startTag(null, "phone"); 73 xml.text(p.getPhone()); 74 xml.endTag(null, "phone"); 75 //结束节点 76 xml.endTag(null, "person"); 77 } 78 //xml的结束节点 79 xml.endTag(null, "persons"); 80 //结束文档 81 xml.endDocument(); 82 } catch (Exception e) 83 { 84 // TODO Auto-generated catch block 85 e.printStackTrace(); 86 } 87 try 88 { 89 out.flush(); 90 out.close(); 91 } 92 catch (IOException e) 93 { 94 e.printStackTrace(); 95 } 96 97 } 98 @Override 99 public boolean onCreateOptionsMenu(Menu menu) { 100 // Inflate the menu; this adds items to the action bar if it is present. 101 getMenuInflater().inflate(R.menu.main, menu); 102 return true; 103 } 104 105 }
person类
1 public class Person 2 { 3 private int id; 4 private String name; 5 private String age; 6 private String sex; 7 private String phone; 8 public int getId() { 9 return id; 10 } 11 public void setId(int id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 public String getAge() { 21 return age; 22 } 23 public void setAge(String age) { 24 this.age = age; 25 } 26 public String getSex() { 27 return sex; 28 } 29 public void setSex(String sex) { 30 this.sex = sex; 31 } 32 public Person(int id, String name, String age, String sex, String phone) { 33 super(); 34 this.id = id; 35 this.name = name; 36 this.age = age; 37 this.sex = sex; 38 this.phone = phone; 39 } 40 public String getPhone() { 41 return phone; 42 } 43 public void setPhone(String phone) { 44 this.phone = phone; 45 } 46 public Person(){} 47 }
保存的内容结果是:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<persons>
<person id="25">
<name>ggg</name>
<sex>men</sex>
<age>21</age>
<phone>1234562</phone>
</person>
</persons>