首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android学习札记(八)

2012-10-31 
Android学习笔记(八)PULL实现数据写入XML?org.wp.servicePULLPersonServicepackage org.wp.serviceimport

Android学习笔记(八)

PULL实现数据写入XML

?

org.wp.service

PULLPersonService

package org.wp.service;import java.io.Writer;import java.util.List;import org.wp.domain.Person;import org.xmlpull.v1.XmlSerializer;import android.util.Xml;public class PULLPersonService {public static void writeXml(List<Person> persons, Writer writer)throws Exception {XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(writer);// <?xml version="1.0" encoding="UTF-8" standalone="yes"?>// true 代表standalone="yes"serializer.startDocument("UTF-8", true);// null代表没有命名空间serializer.startTag(null, "persons");for (Person person : persons) {serializer.startTag(null, "person");serializer.attribute(null, "id", String.valueOf(person.getId()));serializer.startTag(null, "name");serializer.text(person.getName());serializer.endTag(null, "name");serializer.startTag(null, "age");serializer.text(String.valueOf(person.getAge()));serializer.endTag(null, "age");serializer.endTag(null, "person");}serializer.endTag(null, "persons");serializer.endDocument();// flush方法即使在缓冲区中没有满的情况下// 也会将缓冲区内的内容强制写到外设// 也就是所谓的刷新writer.flush();// 关闭输入输出流writer.close();}}

?

org.wp.xml

PULLPersonServiceTest

package org.wp.xml;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.OutputStreamWriter;import java.io.StringWriter;import java.util.ArrayList;import java.util.List;import org.wp.domain.Person;import org.wp.service.PULLPersonService;import android.content.Context;import android.test.AndroidTestCase;import android.util.Log;public class PULLPersonServiceTest extends AndroidTestCase {private static final String TAG = "PULLPersonServiceTest";public void testWriteXml() throws Exception {FileOutputStream outStream = this.getContext().openFileOutput("persons.xml", Context.MODE_PRIVATE);OutputStreamWriter writer = new OutputStreamWriter(outStream, "UTF-8");// 缓冲写入器BufferedWriter bufferedWriter = new BufferedWriter(writer);// 不写入文件,直接获得XML中的内容// StringWriter writer = new StringWriter();List<Person> persons = new ArrayList<Person>();persons.add(new Person(12, "张三", new Short((short) 22)));persons.add(new Person(16, "李四", new Short((short) 36)));persons.add(new Person(90, "田七", new Short((short) 28)));PULLPersonService.writeXml(persons, writer);Log.i(TAG, writer.toString());}}

?

org.wp.domain

Person

package org.wp.domain;public class Person {private Integer id;private String name;private Short age;public Person() {}public Person(Integer id, String name, Short age) {this.id = id;this.name = name;this.age = age;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Short getAge() {return age;}public void setAge(Short age) {this.age = age;}@Overridepublic String toString() {return "Id=" + id + ",Name=" + name + ",Age=" + age;}}

?

?

?

热点排行