广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-16 10:58:07 次阅读 稿源:互联网
    广告

    传统方式:

    代码如下:

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

     }

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告