1、xml文件的序列化:采用XmlSerializer来实现XML文件的序列化。相比传统方式,更高效安全

MainActivity.java

 package com.example.test_buildxmlfile;

 import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random; import org.xmlpull.v1.XmlSerializer; import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.util.Xml;
import android.view.View;
import android.widget.Toast; import com.example.test_getxmlfile.R;
import com.test.MsgInfo.MsgInfo; /**
* @author daomul
* 主入口:xml文件的序列化
*/
public class MainActivity extends Activity { private List<MsgInfo> msgList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); msgList = new ArrayList<MsgInfo>();
Random random= new Random(); //随机的 (1:发送 2 :接收)
long number = 1340000001; //手机地址 //连续生成10条默认短信
for (int i = 0; i < 10; i++) {
msgList.add(new MsgInfo(System.currentTimeMillis(), random.nextInt(2),
"text MSg"+i,Long.toString(number+i),i ));
}
} /**
* 短信信息备份
* @param view 点击事件触发
*/
public void MsgSave(View view){ try {
//XML序列化
XmlSerializer serializer= Xml.newSerializer(); File file=new File(Environment.getExternalStorageDirectory(),"test.xml");
FileOutputStream os= new FileOutputStream(file); serializer.setOutput(os, "utf-8");//os 是导出的文件位置 encoding 指代utf-8
serializer.startDocument("utf-8", true); serializer.startTag(null, "msgs");
for (MsgInfo msg:msgList) {
serializer.startTag(null, "msg");
serializer.attribute(null, "msg", msg.getId()+"");//添加ID属性 serializer.startTag(null, "body");
serializer.text(msg.getBody());
serializer.endTag(null, "body"); serializer.startTag(null, "address");
serializer.text(msg.getAddress());
serializer.endTag(null, "address"); serializer.startTag(null, "type");
serializer.text(msg.getType()+"");
serializer.endTag(null, "type"); serializer.startTag(null, "date");
serializer.text(msg.getDate()+"");
serializer.endTag(null, "date"); serializer.endTag(null, "msg");
}
serializer.endTag(null, "msgs"); serializer.endDocument(); os.close();
Toast.makeText(this, "XML序列化成功", 0).show(); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "XML序列化失败", 0).show();
}
}
}     

MsgInfo.java

 package com.test.MsgInfo;

 /**
* @author daomul
* 短信信息
*/ public class MsgInfo { private long date;
private int type;
private String body;
private String address;
private int id; //无参构造方法
public MsgInfo() { } //有参构造方法 Generate Constructor use fields...
public MsgInfo(long date, int type, String body, String address,int id) {
super();
this.date = date;
this.type = type;
this.body = body;
this.address = address;
this.id = id;
} //setter and getter
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public long getDate() {
return date;
}
public void setDate(long date) {
this.date = date;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }

注: 写文件到SD卡中需要 user 权限

Android - XML序列化的更多相关文章

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

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

  2. XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)

    XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...

  3. 二、Android XML数据解析

    XML,可扩展标记语言.可以用来存储数据,可以看做是一个小型的数据库,SharedPreference就是使用XML文件存储数据的,SQLite底层也是一个XML文件,而在网络应用方面,通常作为信息的 ...

  4. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  5. [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类

    [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...

  6. .NET中XML序列化的总结

    [题外话] 以前虽然常用.NET中的序列化,但是常用的BinaryFormatter,也就是二进制文件的序列化,却鲜用XML的序列化.对于XML序列化,.NET中同样提供了一个非常方便的工具XmlSe ...

  7. XML序列化和反序列化

    上篇总结了下JSON的序列化和反序列化,博园中大牛给了很多牛叉的评论,学习了不少. 不过在上篇中忘了把json序列化和反序列化的另外一种方式写上去了,这里做个简单的补充: Json篇:http://w ...

  8. XML 序列化与反序列化

    XML序列化与反序列化 1.将一个类转化为XML文件 /// <summary> /// 对象序列化成XML文件 /// </summary> /// <param na ...

  9. 关于XML序列化与CultureInfo

    不同的计算机系统可能有着不同的CultureInfo,例如在中文环境下日期通常这样显示03/30/2016,而在有的操作系统下它可能是这样的30.3.2016. 这样的话带来一个问题,例如在中文环境下 ...

随机推荐

  1. jQuery的发展史,你知道吗?

    2006年1月,jQuery的第一个版本面世,至今已经有6年多了(注:这个时间点是截止至出书时间).虽然过了这么久,但它依然以其简洁.灵活的编程风格让人一见倾心.在本篇文章中,我们将讲述jQuery的 ...

  2. 移动H5功能设计反思 测试用例总结

    一.线上页面滑动流畅性测试 1.减少长动画效果(影响流畅) 2.是否自动跳转或者还是让用户自己操作跳转需要推敲 二.buttom和页面滑动的选择(优劣) 部分手机本身就会滑动不灵敏,大部分时候其实用b ...

  3. 【转】C#调用WebService实例和开发

    一.基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是 ...

  4. imx6 uart分析

    本文主要记录: 1.uart设备注册 2.uart驱动注册 3.上层应用调用有些地方理解的还不是很透彻,希望指正. 1.uart设备注册过程 MACHINE_START(MX6Q_SABRESD, & ...

  5. Wellner 自适应阈值二值化算法

    参考文档: Adaptive Thresholding for the DigitalDesk.pdf       Adaptive Thresholding Using the Integral I ...

  6. Unity3D - 详解Quaternion类(二)

    OK,不做引子了,接上篇Unity3D - 详解Quaternion类(一)走起! 四.Quaternion类静态方法 Quaternion中的静态方法有9个即:Angle方法.Dot方法.Euler ...

  7. 【Java集合的详细研究7】Set和List 的关系与区别

    两个接口都是继承自Collection. List (inteface) 次序是List 的最重要特点,它确保维护元素特定的顺序. --ArrayList 允许对元素快速随机访问. --LinkedL ...

  8. Javascript的setTimeOut和setInterval的定时器用法

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式, 直到 clearInterval把它清除.也就是说se ...

  9. Spring Cloud在国内中小型公司用的起来吗?

    转自:http://www.cnblogs.com/ityouknow/p/7508306.html 今天吃完饭休息的时候瞎逛知乎,突然看到这个一个问题Spring Cloud在国内中小型公司能用起来 ...

  10. (转)JavaScript内存模型

    JavaScript对象内存模型 转自:http://blog.csdn.net/u010425776/article/details/53617292  推荐-JavaScript作用域链内存模型: ...