Android xml文件的序列化实现代码

 更新时间:2014年02月26日 14:35:05   作者:  
Android提供了XmlSerializer来实现XML文件的序列化。相比传统方式,更高效安全,需要的朋友可以参考下

传统方式:

复制代码 代码如下:

public void backSms(View view){
  //假设我已经获取到了所有的短信
  StringBuilder sb = new StringBuilder();
  sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  sb.append("<smss>");
  for(SmsInfo info:smsInfos){
   sb.append("<sms>");

   sb.append("<address>");
   sb.append(info.getAddress());
   sb.append("</address>");

   
   sb.append("<type>");
   sb.append(info.getType());
   sb.append("</type>");

   sb.append("<body>");
   sb.append(info.getBody());
   sb.append("</body>");

   sb.append("<date>");
   sb.append(info.getBody());
   sb.append("</date>");

   sb.append("</sms>");
  }
  sb.append("</smss>");
  try{
   File file = new File(Environment.getExternalStorageDirectory(),"backup.xml");
   FileOutputStream fos = new FileOutputStream(file);
   fos.write(sb.toString().getBytes());
   Toast.makeText(this, "备份成功", Toast.LENGTH_LONG).show();
  }catch(Exception e){
   e.printStackTrace();
   Toast.makeText(this, "备份失败", Toast.LENGTH_LONG).show();
  }

 }

采用XmlSerializer实现的方式:

复制代码 代码如下:

public void backSms2(View view){
  try{
   XmlSerializer serializer =  Xml.newSerializer();
   File file = new File(Environment.getExternalStorageDirectory(),"backup2.xml");
   FileOutputStream os = new FileOutputStream(file);
   //初始化序列号器 指定XML数据写入到哪个文件 并且指定文件的编码方式
   serializer.setOutput(os,"utf-8");
   serializer.startDocument("uft-8", true);
   serializer.startTag(null, "smss");
   for(SmsInfo info:smsInfos){
    serializer.startTag(null, "sms");
    serializer.attribute(null, "id", info.getId()+"");

    serializer.startTag(null, "body");
    serializer.text(info.getBody());
    serializer.endTag(null, "body");

    serializer.startTag(null, "address");
    serializer.text(info.getAddress());
    serializer.endTag(null, "address");

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

   serializer.endTag(null, "smss");
   serializer.endDocument();
  }catch(Exception e){
   e.printStackTrace();
   Toast.makeText(this, "备份失败", 0);
  }

 }

相关文章

  • Android自定义控件实现手势密码

    Android自定义控件实现手势密码

    这篇文章主要介绍了Android自定义控件实现手势密码的相关资料,实现手势解锁功能,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 微信公众平台开发入门教程(图文详解)

    微信公众平台开发入门教程(图文详解)

    由于微信的大热,为了更好的方便使用微信的用户查询一些信息,这篇文章是入门级的微信公众平台开发教程,需要的朋友可以参考下
    2013-09-09
  • Android 判断SIM卡属于哪个移动运营商详解及实例

    Android 判断SIM卡属于哪个移动运营商详解及实例

    这篇文章主要介绍了Android 判断SIM卡属于哪个移动运营商详解相关资料,并附实例代码,具有一定参考价值,需要的朋友可以参考下
    2016-11-11
  • Android绘制钟表的方法

    Android绘制钟表的方法

    这篇文章主要为大家详细介绍了Android绘制钟表的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • Android下拉刷新控件PullToRefresh实例解析

    Android下拉刷新控件PullToRefresh实例解析

    这篇文章主要为大家详细解析了Android下拉刷新控件PullToRefresh实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • AndroidX下使用Activity和Fragment的变化详解

    AndroidX下使用Activity和Fragment的变化详解

    这篇文章主要介绍了AndroidX下使用Activity和Fragment的变化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Android实现登录注册功能

    Android实现登录注册功能

    这篇文章主要为大家详细介绍了Android实现登录注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • android IPC之binder通信机制

    android IPC之binder通信机制

    Binder通信机制说来简单,但是在使用的过程的遇到了一些问题,最后终于解决了,现在晒出来和大家分享一下,希望可以帮助你们
    2012-11-11
  • 通俗易通讲解Android蓝牙键值适配

    通俗易通讲解Android蓝牙键值适配

    这篇文章介绍了Android蓝牙键值适配的方法,对大家的学习或工作具有一定的参考借鉴价值。需要的朋友可以收藏下,方便下次浏览观看
    2021-12-12
  • Android国际化之中英文语言切换

    Android国际化之中英文语言切换

    大家好,本篇文章主要讲的是Android国际化之中英文语言切换,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论