生成XML文件备份短信,其格式为:

  1. <?xml version="1.0" encoding="UTF-8" standalone="true"?>
    <message>
    <sms>
  2. <body>第0条短信</body>
  3. <date>1465041254178</date>
  4. <address>000</address>
  5. <type>1</type>
  6. </sms>
    <sms>
  7. <body>第1条短信</body>
  8. <date>1465041254179</date>
  9. <address>111</address>
  10. <type>1</type>
  11. </sms>
    <sms>
  12. <body>第2条短信</body>
  13. <date>1465041254179</date>
  14. <address>222</address>
  15. <type>1</type>
  16. </sms>
  17. </message>

建立Sms类

  1. package com.wuyudong.createxml.domain;
  2.  
  3. public class Sms {
  4.  
  5. private String body;
  6. private String date;
  7. private String type;
  8. private String address;
  9.  
  10. public Sms(String body, String date, String type, String address) {
  11. super();
  12. this.body = body;
  13. this.date = date;
  14. this.type = type;
  15. this.address = address;
  16. }
  17.  
  18. public String getBody() {
  19. return body;
  20. }
  21.  
  22. public void setBody(String body) {
  23. this.body = body;
  24. }
  25.  
  26. public String getDate() {
  27. return date;
  28. }
  29.  
  30. public void setDate(String date) {
  31. this.date = date;
  32. }
  33.  
  34. public String getType() {
  35. return type;
  36. }
  37.  
  38. public void setType(String type) {
  39. this.type = type;
  40. }
  41.  
  42. public String getAddress() {
  43. return address;
  44. }
  45.  
  46. public void setAddress(String address) {
  47. this.address = address;
  48. }
  49.  
  50. }

整几个虚拟的短信对象,存在list中,备份数据通常都是备份至sd卡

使用StringBuffer拼接字符串,* 把整个xml文件所有节点append到sb对象里

sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
//添加smss的开始节点
sb.append("<smss>");
.......
* 把sb写到输出流中

fos.write(sb.toString().getBytes());

完整代码如下:

  1. package com.wuyudong.createxml;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. import com.wuyudong.createxml.domain.Sms;
  9.  
  10. import android.os.Bundle;
  11. import android.os.Environment;
  12. import android.app.Activity;
  13. import android.view.Menu;
  14. import android.view.View;
  15.  
  16. public class MainActivity extends Activity {
  17.  
  18. List<Sms> message;
  19.  
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_main);
  24. // 创建10条虚拟短信
  25. message = new ArrayList<Sms>();
  26. for (int i = 0; i < 10; i++) {
  27. Sms sms = new Sms("第" + i + "条短信", System.currentTimeMillis() + "",
  28. "1", "" + i + i + i);
  29. message.add(sms);
  30. }
  31. }
  32.  
  33. public void click(View v) {
  34. File file = new File(Environment.getExternalStorageDirectory(),
  35. "backup.xml");
  36. try {
  37. FileOutputStream fos = new FileOutputStream(file);
  38. StringBuffer sb = new StringBuffer();
  39. // 添加xml头
  40. sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
  41. // 添加根节点
  42. sb.append("<message>");
  43. // 每一条短信添加一个sms节点
  44. for (Sms sms : message) {
  45. sb.append("<sms>");
  46. sb.append("<body>");
  47. sb.append(sms.getBody());
  48. sb.append("</body>");
  49. sb.append("<date>");
  50. sb.append(sms.getDate());
  51. sb.append("</date>");
  52. sb.append("<address>");
  53. sb.append(sms.getAddress());
  54. sb.append("</address>");
  55. sb.append("<type>");
  56. sb.append(sms.getType());
  57. sb.append("</type>");
  58. sb.append("</sms>");
  59. }
  60. sb.append("</message>");
  61. fos.write(sb.toString().getBytes());
  62. fos.close();
  63. } catch (Exception e) {
  64. // TODO Auto-generated catch block
  65. e.printStackTrace();
  66. }
  67. }
  68.  
  69. }

Android 生成xml文件的更多相关文章

  1. Android 生成xml文件及xml的解析

    1.生成xml文件的两种方式 (1)采用拼接的方式生成xml(不推荐使用) (2)利用XmlSerializer类生成xml文件 package com.example.lucky.test52xml ...

  2. Android 使用xml序列化器生成xml文件

    在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...

  3. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  4. Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  5. Android学习记录(1)—Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...

  6. 使用Pull解析器生成XML文件和读取xml文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  7. Java生成XML文件

    我们在数据库中的数据可以将其提取出来生成XML文件,方便传输.例如数据库中有Admin这张表: 我们写一个java类表示admin数据: package xmlDom.vo; import java. ...

  8. C# 生成xml文件

    本篇文章旨在.net环境下生成xml文件,以控制台应用程序为例进行说明. 1.在vs中新建控制台应用程序CreateXml 2.CreateXmlFile:主要生成xml的函数 public void ...

  9. 视频播放实时记录日志并生成XML文件

    需求描述: 在JWPlayer视频播放过程中,要求实时记录视频观看者播放.暂停的时间,并记录从暂停到下一次播放时所经过的时间.将所有记录保存为XML文件,以方便数据库的后续使用. 实现过程: 尝试1: ...

随机推荐

  1. Lucene查询语法详解

    Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...

  2. 七、L2CAP

    1.      L2CAP 在BR/EDR模式下,在connection procedure成功执行后,两台设备通过一条物理信道(physical channel)连接在一起,同时两者之间建立起了一条 ...

  3. 30天C#基础巩固-----多态,工厂模式

         自己要有自信,相信自己可以找到好的工作.面对校招,企业更加看重自己的基础,这30天就把C#的基础好好的复习,学习下.笔记一定要认真的记录,这样自己复习回顾的时候就有了可以参考的东西了. 一: ...

  4. 【原创】kafka producer源代码分析

        Kafka 0.8.2引入了一个用Java写的producer.下一个版本还会引入一个对等的Java版本的consumer.新的API旨在取代老的使用Scala编写的客户端API,但为了兼容性 ...

  5. .NET Framework介绍

    .NET Framework 是一个集成在 Windows 中的组件,它支持生成和运行下一代应用程序与 XML Web Services. .NET Framework 旨在实现下列目标: 提供一个一 ...

  6. CSS的Display属性可能的值

    none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline-block 行内块元素.( ...

  7. Zookeeper安装,Zookeeper单机模式安装

    http://zookeeper.apache.org/releases.html#download 下载解压到(我自己的)解压到 /usr/local 下 把名字改成 zookeeper 进入zoo ...

  8. 图说hibernate注释--xml里配置参数(一)

    ****************************************************************************************[来自我另一博文]

  9. 关于OpenCart的一个小建议

    OpenCart是一套老牌的开源自由B2C电商系统,最近watch了其托管在在github上的项目,发现还是很活跃的,每天都有人反馈bug. 初步的看一下,它是支持在后台管理多个店铺的,而且可以同一个 ...

  10. 基于Typecho CMS框架开发大中型应用

    基于Typecho CMS框架开发大中型应用 大中型应用暂且定义为:大于等于3个数据表的应用!汗吧! Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Wid ...