Android 生成xml文件
生成XML文件备份短信,其格式为:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<message>
<sms>
<body>第0条短信</body>
<date>1465041254178</date>
<address>000</address>
<type>1</type>
</sms>
<sms>
<body>第1条短信</body>
<date>1465041254179</date>
<address>111</address>
<type>1</type>
</sms>
<sms>
<body>第2条短信</body>
<date>1465041254179</date>
<address>222</address>
<type>1</type>
</sms>
</message>
建立Sms类
package com.wuyudong.createxml.domain;
public class Sms {
private String body;
private String date;
private String type;
private String address;
public Sms(String body, String date, String type, String address) {
super();
this.body = body;
this.date = date;
this.type = type;
this.address = address;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
整几个虚拟的短信对象,存在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());
完整代码如下:
package com.wuyudong.createxml; import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List; import com.wuyudong.createxml.domain.Sms; import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { List<Sms> message; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建10条虚拟短信
message = new ArrayList<Sms>();
for (int i = 0; i < 10; i++) {
Sms sms = new Sms("第" + i + "条短信", System.currentTimeMillis() + "",
"1", "" + i + i + i);
message.add(sms);
}
} public void click(View v) {
File file = new File(Environment.getExternalStorageDirectory(),
"backup.xml");
try {
FileOutputStream fos = new FileOutputStream(file);
StringBuffer sb = new StringBuffer();
// 添加xml头
sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
// 添加根节点
sb.append("<message>");
// 每一条短信添加一个sms节点
for (Sms sms : message) {
sb.append("<sms>");
sb.append("<body>");
sb.append(sms.getBody());
sb.append("</body>");
sb.append("<date>");
sb.append(sms.getDate());
sb.append("</date>");
sb.append("<address>");
sb.append(sms.getAddress());
sb.append("</address>");
sb.append("<type>");
sb.append(sms.getType());
sb.append("</type>");
sb.append("</sms>");
}
sb.append("</message>");
fos.write(sb.toString().getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
Android 生成xml文件的更多相关文章
- Android 生成xml文件及xml的解析
1.生成xml文件的两种方式 (1)采用拼接的方式生成xml(不推荐使用) (2)利用XmlSerializer类生成xml文件 package com.example.lucky.test52xml ...
- Android 使用xml序列化器生成xml文件
在<Android 生成xml文件>一文中使用流的形式写入xml格式文件,但是存在一定的问题,那就是在短信内容中不能出现<>之类的括号,本文使用xml序列化器来解决 xml序列 ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- Android中XML文件的序列化生成与解析
xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...
- Android学习记录(1)—Android中XML文件的序列化生成与解析
xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...
- 使用Pull解析器生成XML文件和读取xml文件
有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...
- Java生成XML文件
我们在数据库中的数据可以将其提取出来生成XML文件,方便传输.例如数据库中有Admin这张表: 我们写一个java类表示admin数据: package xmlDom.vo; import java. ...
- C# 生成xml文件
本篇文章旨在.net环境下生成xml文件,以控制台应用程序为例进行说明. 1.在vs中新建控制台应用程序CreateXml 2.CreateXmlFile:主要生成xml的函数 public void ...
- 视频播放实时记录日志并生成XML文件
需求描述: 在JWPlayer视频播放过程中,要求实时记录视频观看者播放.暂停的时间,并记录从暂停到下一次播放时所经过的时间.将所有记录保存为XML文件,以方便数据库的后续使用. 实现过程: 尝试1: ...
随机推荐
- 搭建CnetOS6.5x64最小系统及在线yum源的配置
CentOS系统作为红帽系列的一款linux系统,因为其免费.开源,在中小企业中得到了广泛应用,生产上为了更好的利用资源,都采用最小系统安装,因为一个图形界面都会占去系统资源的30%到40%,生产上一 ...
- 新学C++的for,switch和随机数
通过一个小程序学习: #include<iostream> #include<cstdlib> #include<ctime> using namespace st ...
- WinForm菜单和工具栏
菜单和工具栏: 1.MenuStrip - 顶部菜单栏分割线:1输入- 2.右键插入 |SpearTOR 快捷键设置:每一个项右键属性的最下面可以设置快捷键不管选项隐藏还是菜单隐藏,快捷键都管用 2. ...
- asp.net中Ajax控件的用途(一)
1,UpdatePanel控件,用户更新部分内容,示例 放入一个Label和一个Button,单击按钮,label显示当前时间. 2,ScriptManagerProxy控件,每个页面只能有一个Scr ...
- js或css文件合并的三种方式推荐
源文档 <http://www.jb51.net/article/32834.htm> 在Web项目的开发中,js,css文件会随着项目的开发变得越来越多,越来越大,这就给给性能方面带来一 ...
- 分享几个原生javascript面向对象设计小游戏
一.序言 不知大家是不是和我一样,当初都有个梦想.学编程,就是想开发游戏.结果进入大学学习之后,才知道搞的是数据库应用程序开发!在此,本人就分享下业余时间做的几个小游戏吧!本打算想用winform或w ...
- BitCoin - BlockChain
BitCoin 比特币, 参考: BlockChain 区块链, 参考: 参考
- MySQL Workbench 修改快捷键
在安装根目录查到\data\main_menu.xml这个文件 例如,修改执行sql语句的快捷键为F5 <value type="object" struct-name=&q ...
- Mac 连接阿里云服务器
1. 通过命令行连接 Server 并设置 1.1 连接 Server #: ssh root@hctec.top ssh: 远程连接工具 root: 远程服务器用户名, 此处我用的是: root 用 ...
- linux下安装redis的详细过程
先安装一些组件: yum -y install gcc gcc-c++ libstdc++-devel 下载并安装: # wget http://download.redis.io/releases/ ...