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 xml文件的序列化相关推荐

  1. Android XML文件中设置字体

    Android提供三种字体:"Sans","serif"和"monospace". 1.在Android XML文件中设置字体 可以采用an ...

  2. android XML文件加注释

    android XML文件加注释 如题. 注释以 <!-- 开始并以--> 结束, 例如 <!--注释内容-->. 注意 android编程中有的控件(比如按钮)内部不能加注释 ...

  3. android xml文件操作类,android操作xml

    android操作xml封装后的类,包括创建xml和读xml. public class XmlParserUtil { //创建xml文件 public static void createXmlF ...

  4. Android XML文件使用

    一.布局文件:在layout目录下,使用比较广泛: 我们可以为应用定义两套或多套布局,例如:可以新建目录layout_land(代表手机横屏布局),layout_port(代表手机竖屏布局),系统会根 ...

  5. Android XML文件读写

    <?xml version="1.0" encoding="UTF-8"?> <persons>     <person id=& ...

  6. android xml文件中进行上传图片以及获取图片

    在某些时候 项目需求中需要实现图片上传和图片获取功能 我需要把图片转换成byte[]封装在xml中 将xml文件加压后上传到.NET WCF服务中 上传之前的步骤: 一.将图片转换为byte[] 1 ...

  7. android XML文件注释

    android的XML文件注释一般采用 <!--注释内容 -->的方式进行,但是有时候却不能进行注释,如 <Button android:id="@+id/button2& ...

  8. android xml文件放在哪里,android 创建 xml文件

    android创建xml文件的方法. 要操作android的外部存储,所以要在AndroidManifest.xml文件中添加权限. 首先要创建一个XmlSerialize对象. 并创建一个文件,并打 ...

  9. android xml文件用记事本打开文件格式不正常,XML 文件用记事本打开换行与不换行问题...

    C# code: public void WriteISFXml(string RefNo,string TransType,string ShipmentType) { ///初始化XML类等操作 ...

最新文章

  1. 自定义Chrome浏览器
  2. 什么是信息服务外包?
  3. opencv查找表值直方图均衡化
  4. 根据姓名得到名字首字母
  5. 深度学习论文资源(截至2016年)
  6. html怎么让动画最后消失了,css3 – 不能停止css动画在最后一个关键帧后消失
  7. Java写文件导致io过高_161108、Java IO流读写文件的几个注意点
  8. 统计学习方法十:隐马尔科夫模型
  9. appium python 抓包_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
  10. 设计模式-第七篇之门面模式
  11. 9008刷机工具_黔隆科技刷机教程OPPOR9S忘记密码免刷机保资料解屏幕锁教程
  12. u盘读写速度变慢了开始快后面特别慢卡顿解决方法
  13. html submit修改名称,HTML Input Submit name用法及代码示例
  14. 复合调味品,是年轻人新的追逐吗?
  15. ZCC9628单向全波无刷马达驱动芯片替代AM7228
  16. 用计算机知道对方的年龄,年龄计算器适合你的恋爱对象,什么年龄适合恋
  17. 如何用vm虚拟机当服务器,vm虚拟机如何做云服务器
  18. 阿里为何不允许用Executors创建线程池?
  19. win10-LTSC2019装机必备操作和软件备忘录
  20. Windows远程映射端口,访问服务器生成的tensorboard本地访问链接地址

热门文章

  1. 制造-销售”模式正在消亡,传统大型企业的上云之路要如何举步?
  2. Nopcommerce主要用到的技术及特点
  3. 人生若如初见,又当如何?
  4. 在树莓派上编译安装golang环境
  5. Picasso detected an unsupported OkHttp on the ...
  6. Indeterminate ProgressBar
  7. IPTABLES防火墙SNAT、DNAT网关策略
  8. Kubernetes Node Controller源码分析之配置篇
  9. web pack的使用事项
  10. sqlserver监控(备忘)