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

Android学习(23) -- 数据存储之xml序列化器保存数据

2016-04-14 23:05 211 查看
由于直接使用流操作xml时,当遇到数据中含有标签格式的数据时候,比如:有本书<你给>。那么在生成xml文件的时候,会报错。为了更加高效正确的生成xml文件,我们可以使用XmlSerializer来进行操作。操作步骤:

1、通过Xml.newSerializer() 获取XmlSerializer对象

2、通过setOutput制定生成文件的输出流和编码

3、通过startDocument,开始生成xml,并指定头结点中的enconding属性的值

4、通过startTag和endTag以及text,来操作标签内容

5、通过endDocument告诉序列化器,文件生成完毕。

public void click(View v){
//使用xml序列化器生成xml文件
//1.拿到序列化器对象
XmlSerializer xs = Xml.newSerializer();
//2.初始化
File file = new File(Environment.getExternalStorageDirectory(),"sms2.xml");
try {
FileOutputStream fos = new FileOutputStream(file);
//enconding:指定用什么编码生成xml文件
xs.setOutput(fos, "utf-8");

//3.开始生成xml文件
//enconding:指定头结点中的enconding属性的值
xs.startDocument("utf-8", true);

xs.startTag(null, "message");

for (Message sms : smsList) {
xs.startTag(null, "sms");

xs.startTag(null, "body");
xs.text(sms.getBody() + "<body>");
xs.endTag(null, "body");

xs.startTag(null, "date");
xs.text(sms.getDate());
xs.endTag(null, "date");

xs.startTag(null, "type");
xs.text(sms.getType());
xs.endTag(null, "type");

xs.startTag(null, "address");
xs.text(sms.getAddress());
xs.endTag(null, "address");

xs.endTag(null, "sms");
}

xs.endTag(null, "message");

//告诉序列化器,文件生成完毕
xs.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: