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

所属分类: 软件编程 / Android 阅读数: 1011
收藏 0 赞 0 分享

传统方式:

复制代码 代码如下:

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);
  }

 }

更多精彩内容其他人还在看

Retrofit2日志拦截器的使用

这篇文章主要介绍了Retrofit2日志拦截器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android创建外部lib库及自定义View的图文教程

这篇文章主要给大家介绍了关于Android创建外部lib库及自定义View的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android分享微信小程序失败的一些事小结

这篇文章主要给大家介绍了关于Android分享微信小程序失败一些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android分享微信小程序技巧之图片优化

这篇文章主要给大家介绍了关于Android分享微信小程序技巧之图片优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android Viewpager实现无限循环轮播图

这篇文章主要为大家详细介绍了Android Viewpager实现无限循环轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android中的Bitmap序列化失败的解决方法

这篇文章主要介绍了Android中的Bitmap序列化失败的解决方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Android自定义通用标题栏CustomTitleBar

这篇文章主要为大家详细介绍了Android自定义通用标题栏CustomTitleBar,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android组合控件自定义标题栏

这篇文章主要为大家详细介绍了Android组合控件自定义标题栏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android自定义复合控件实现通用标题栏

这篇文章主要为大家详细介绍了Android自定义复合控件实现通用标题栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

ExpandableListView实现简单二级列表

这篇文章主要为大家详细介绍了ExpandableListView实现简单二级列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多