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

由于直接使用流操作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();
		} 
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值