当前位置: 代码迷 >> Android >> Android学习札记(八)
  详细解决方案

Android学习札记(八)

热度:83   发布时间:2016-05-01 13:17:22.0
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;	}	@Override	public String toString() {		return "Id=" + id + ",Name=" + name + ",Age=" + age;	}}

?

?

?

  相关解决方案